Записанный курс упаковать легко: есть файл, есть время. С живым эфиром сложнее - защиту надо навесить на поток, который идёт прямо сейчас. Ниже разбор, как это устроено у нас, что нужно от вас и чего ждать в первый раз.
Под этими словами на рынке живут две разные вещи, и разница видна только в момент, когда кто-то нажал запись.
Первый вариант: платформа накладывает поверх картинки водяной знак с именем и почтой зрителя. Запись всё равно получается, просто на ней написано, кто её сделал. Это сдерживает, но материал у сливщика уже есть, и дальше вопрос только в том, готов ли он к разбирательству.
Второй вариант: записи не получается вовсе. Программа захвата экрана видит на месте окна чёрный прямоугольник. Мы делаем именно это, причём одинаково и для записанного урока, и для живого эфира: защита ставится на окно плеера в момент его создания, до того как в окно вообще что-то загрузилось. На Windows это системный запрет захвата окна, на Android - системный флаг защищённого окна, который телефон выставляет первой же строкой при запуске плеера. Механизм не различает, VOD у него внутри или трансляция, поэтому и ведёт себя одинаково.
Схема простая, и нигде в ней поток не хранится в открытом виде: сырой кусок живёт секунды и удаляется сразу после шифрования.
Вы ведёте эфир из OBS. В настройках вещания указываете наш адрес и разовый ключ потока. Соединение шифрованное: приёмник принимает поток только по RTMPS, обычный незашифрованный RTMP он отклоняет.
Наш сервер принимает поток и, не перекодируя его, режет на короткие куски по шесть секунд. Как только накопилась группа из пяти кусков, около тридцати секунд эфира, группа шифруется своим разовым ключом. Шифр тот же самый, которым запечатан купленный курс: мы сверили выход побайтово с боевым упаковщиком, различий нет.
Дальше ключ уезжает на лицензионный сервер и регистрируется там. И только после того, как сервер ответил «принял», куски эфира появляются в плейлисте, который видит зритель.
Этот порядок операций важнее, чем кажется, поэтому про него отдельно.
В плейлисте эфира физически не может появиться ссылка на ключ, которого ещё нет в базе. Не потому что мы стараемся успеть, и не потому что стоит таймаут с запасом. Программа просто не умеет опубликовать кусок раньше, чем получит от сервера подтверждение о регистрации ключа: следующий шаг не начнётся, пока не завершился предыдущий.
Ключи эфира выдаются по той же проверке кода активации, что и ключи курса, и обходного, более простого пути для эфира не сделано. Больше того, доступ к эфиру и доступ к купленному курсу разведены: код, выданный на курс, ключи эфира не откроет, а эфир не может писать в ключи проданного курса. Это проверено на боевой системе, а не на стенде: подмена уже выданного ключа группы отклоняется, поддельный секрет вещания отклоняется, попытка эфира на проданном курсе отклоняется.
Приём эфира при этом отделён от всего остального: секрет, которым авторизуется вещание, не открывает ни выдачу кодов, ни ключи проданных курсов.
Остаётся то, что остаётся у любой защиты на рынке: эфир можно переснять камерой со стороны. Против этого работает вторая линия - именная метка в кадре, по которой видно, чей это был доступ. Как выглядит попытка записать наш урок штатными средствами телефона, показано на странице доказательств.
Самая скучная часть, которая обычно съедает больше всего времени у авторов.
Когда вы завершаете трансляцию, мы закрываем эфир: в плейлист дописывается финальная метка и последний неполный кусок. С этого момента эфир перестаёт быть эфиром и становится обычной защищённой записью. Она открывается у тех же зрителей, лежит на тех же ключах и не требует повторной упаковки.
То есть после вебинара вам не нужно скачивать запись, отдавать её нам, ждать упаковки и рассылать заново. Запись доступна сразу, и доступ к ней ровно у тех, кто был на эфире.
Отозвать доступ можно так же, как у курса: ключ зрителя блокируется из кабинета за секунды, и запись перестаёт у него открываться.
Требования короткие, но их стоит выставить заранее, а не за пять минут до начала.
Битрейт 2500 кбит/с, разрешение 1280×720, 30 кадров в секунду. Интервал ключевых кадров ровно 2 секунды: без этого нарезка на куски идёт грязно, и часть зрителей поймает артефакты в начале сегментов.
Канал нужен стабильный на отдачу. Эфир идёт по шифрованному соединению, и обрыв связи у вас означает паузу у всех зрителей сразу.
Ключ потока на первые эфиры выдаём мы: пишете, во сколько начинаете, получаете адрес и ключ. Самовыдачу ключа в кабинете автора мы сейчас доделываем, и на механику защиты она не влияет.
Зрителю нужны две вещи: наш плеер и личный код доступа на эфир. Плеер тот же самый, что и для курса, никакой второй программы. Код на эфир мы готовим вместе с вами по вашему списку участников, и он именной, как код на курс: ссылка, которую можно переслать в чат посторонним, тут просто не появляется.
Плеер с поддержкой эфира мы отдаём вместе с первым вебинаром. Если ваши ученики уже смотрят у вас защищённый курс, им нужно будет один раз обновить программу.
Две вещи, которые надо знать до того, как вы пообещаете что-то ученикам.
Первое: задержка. Прежде чем уйти зрителю, кусок эфира должен накопиться, зашифроваться и получить ключ на сервере. По расчёту наших интервалов зритель видит происходящее на 30-60 секунд позже вас; точную цифру на вашем канале мы замерим на первом же эфире. Для лекции, разбора и продающего вебинара это незаметно. Для формата «задаю вопрос и жду ответа в чате прямо сейчас» закладывайте задержку в сценарий.
Второе: обрыв. Если новых кусков нет две минуты, плеер на Windows считает эфир прерванным и заканчивает воспроизведение. Вы можете переподключиться, приём продолжит ту же сессию с правильного места, но зрителю, у которого плеер уже вышел, придётся зайти заново. Поэтому первые эфиры мы проводим вместе с вами: держим связь, следим за приёмом и вмешиваемся, если что-то пойдёт не так.
Для вас разница только в одном месте: как материал попадает в систему.
Курс вы отдаёте файлами или ссылкой, мы его упаковываем, вы раздаёте ученикам плеер и коды активации. Эфир вы отдаёте потоком в момент вещания, а всё остальное совпадает: тот же плеер, такой же именной код доступа, та же привязка к устройству, тот же мгновенный отзыв доступа и тот же чёрный кадр при попытке записать экран.
Цена считается так же: по числу зрителей, а не по часам эфира и не по гигабайтам трафика. Отдельного тарифа на вебинары у нас нет.
Скажите, когда вебинар и сколько человек ждёте, - подготовим приём эфира, ключ потока и коды для зрителей. Первый курс защищаем бесплатно: до 15 учеников или 30 дней.
Написать в Telegram