Видеостриминг для онлайн-обучения: протоколы, трафик и цена

Курс уже записан, ролики загружены на сайт, и первые сто студентов смотрят их без нареканий. Потом группа вырастает до пятисот человек, преподаватель включает урок в реальном времени для разбора домашнего задания, и в тот же день приходят два неприятных сюрприза: счёт за трафик подскакивает в разы, а видео у половины группы виснет на буферизации. Причина сидит в архитектуре, которую заложили на старте, когда группа была маленькой, а не в объёме самого контента.
Видеостриминг в приложении для онлайн-обучения объединяет три разных технических задачи: раздачу записанных лекций большой аудитории, трансляцию урока в реальном времени с чатом и вопросами и двустороннюю связь преподавателя со студентом с задержкой меньше секунды. Каждая задача решается своей архитектурой, и попытка закрыть все три одним универсальным решением обычно кончается либо переплатой, либо зависаниями на масштабе.
Три сценария видео, а не один
Разница между сценариями сидит в том, что происходит с сервером при росте аудитории, а не в качестве картинки на экране студента.
| Сценарий | Что важно | Где ломается дешёвое решение |
|---|---|---|
| Записанная лекция для сотен и тысяч студентов | плавное воспроизведение на любой скорости интернета, экономия трафика | одна версия видео на всех буферизуется на слабом канале и сжигает трафик на тех, кто досмотрел до середины |
| Урок в реальном времени с чатом и вопросами, аудитория 10-1000 человек | задержка 2-5 секунд, стабильность при массовом подключении | архитектура, рассчитанная на десяток зрителей, не выдерживает подключения всей группы разом |
| Двусторонний разговор преподавателя и студента: репетиторство, консультации | задержка меньше 500 мс, оба видят и слышат друг друга без запаздывания | протокол для записанных лекций сюда не подходит в принципе, нужна отдельная архитектура реального времени |
Для учебного продукта, где есть и лекции, и разбор домашних заданий, и индивидуальные консультации, правильный ответ обычно гибрид: одна архитектура для пассивного просмотра, другая для интерактива. Пытаться закрыть репетиторство той же схемой, что и лекции для тысячи зрителей, не получается: задержка в несколько секунд, нормальная для трансляции, делает живой диалог невозможным. У обучения внутри компании набор сценариев смещён: корпоративная видеоплатформа для обучения строится вокруг обязательных курсов и отчётности перед проверяющими, и это меняет требования к видеослою.
Почему трафик становится главной строкой в смете
Видео в 720p занимает около 2 Мбит/с. Тысяча студентов, которые одновременно смотрят такой поток, требуют около 2 Гбит/с исходящего трафика с сервера. Именно исходящий трафик обычно составляет 85-95% ежемесячного счёта за видео, а кодирование и хранение стоят рядом с этой суммой как погрешность.
Если сервер отдаёт файл каждому студенту заново, канал кончается уже на первой сотне одновременных зрителей. Сеть доставки контента с узлами ближе к студенту кэширует сегменты видео и отдаёт большинство запросов, не обращаясь к исходному серверу повторно: правильно настроенная раздача снижает нагрузку на источник в разы. Для российской аудитории это означает размещение видео и раздачи на мощностях внутри страны: Яндекс Облако, VK Cloud и Selectel держат дата-центры в России, что заодно закрывает требование 152-ФЗ о хранении персональных данных внутри страны, если в записи есть лица и голоса студентов.
Второй источник экономии на трафике: не отдавать всем одно и то же качество. Студент на слабом мобильном интернете и студент на домашнем широкополосном канале получают разные версии видео, и плеер сам переключается между ними без участия человека. Без этого часть аудитории виснет на буферизации, а часть получает картинку хуже, чем позволяет её канал.
Отдельной строкой считается доставка видео с низкой задержкой: чем короче задержка, тем меньше запас буфера у плеера и тем дороже обходится каждый зритель на пике.
Как защитить платный курс от бесплатной пересылки
Если студент может скопировать ссылку на видео и переслать её в чат, платный курс становится доступен бесплатно всем, кому эту ссылку перешлют дальше. Первый барьер стоит недорого: временная подписанная ссылка, которая перестаёт действовать через час для страницы урока и через сутки для самого видеофайла. Она закрывает подавляющее большинство случаев бытового расшаривания и внедряется за несколько дней работы.
Полное шифрование на уровне устройства обходится дороже и во внедрении, и в поддержке, и оправдано только для дорогих курсов или контента под договор о неразглашении с корпоративным заказчиком. Для обычного платного курса подписанной ссылки достаточно: тратить бюджет на дорогую защиту с первого дня означает закрывать риск, который уже закрыт дешёвой мерой.
Что говорит закон и при чём тут реестр
Записи уроков содержат лица и голоса студентов, то есть персональные данные, и по 152-ФЗ они хранятся на серверах в России так же, как список студентов и их оценки. Обезличенная статистика просмотров без привязки к конкретному человеку под это требование не подпадает.
Для платформ, которые поставляются вузам, школам и другим госзаказчикам, дополнительно действует реестр отечественного ПО Минцифры: он открывает участие в госзакупках и льготу по НДС. Это отдельный документ от свидетельства Роспатента на программу для ЭВМ, которое подтверждает права на код, но закупок не открывает. Фора Софт в реестре отечественного ПО, реестровая запись № 21522.
План: с чего начинать и что добавлять по мере роста
Разумный порядок внедрения обратный сложности архитектуры. Сначала запускается раздача записанных лекций с адаптивным качеством и подписанными ссылками: это самая дешёвая и самая быстрая часть, и на ней уже можно продавать курс. Следующим шагом добавляется урок в реальном времени для группы, если преподавателю нужно вести занятие вживую, а не только отвечать на вопросы текстом. Двусторонняя связь для индивидуальных консультаций добавляется последней: это отдельная архитектура, и делать её раньше, чем появился спрос на такой формат, значит платить за то, чем никто не пользуется. Видеослой при этом только часть продукта: курсы, оплаты и прогресс студента живут по своему порядку внедрения, разобранному в гиде по разработке платформы онлайн-обучения.
Разделение слоёв заметно на живых продуктах: видео в платформе БрейнСерт держит занятия в реальном времени и архив записей на разных механизмах, и пиковая нагрузка на них приходит в разное время.
Список функций для оценки почти ничего не даёт, потому что стоимость определяют сценарии использования видео, а не количество галочек. Мы отдаём описание требований, архитектуру и смету за 24 часа. План MVP, аудит кода и аудит архитектуры делаем бесплатно, за 3 рабочих дня.
Сколько это стоит
Разработка видеостриминга для приложения онлайн-обучения начинается от 200 000 ₽. В эту сумму входит рабочая база: воспроизведение записанных уроков с адаптивным качеством, защита ссылок от бесплатной пересылки, личный кабинет для доступа к курсу. Этого достаточно, чтобы небольшой курс начал продаваться, и его нельзя было пересматривать бесплатно после одной пересланной ссылки.
Дальше цена растёт от трёх вещей: сколько зрителей подключается одновременно, нужен ли урок в реальном времени с чатом и вопросами и нужна ли двусторонняя связь для репетиторства или консультаций. Первое определяет архитектуру раздачи и объём инфраструктуры. Второе добавляет отдельный сервер трансляции. Третье, если оно нужно, добавляет архитектуру реального времени, устроенную иначе, чем раздача записанных лекций. Какие из трёх пунктов вообще нужны в первой версии, решается на этапе планирования MVP и оценки бюджета, до того как выбран протокол.
В команде 50 специалистов в штате, без субподряда, видео и аудио занимаемся с 2005 года, за это время сделали 250+ проектов. Из учебных платформ показательна Школарли: она держала до 2000 студентов в одной сессии без обрывов трансляции. Главный урок оттуда про пики: нагрузка на видеослой приходит всплеском, обычно перед экзаменом или дедлайном по курсу, и система, рассчитанная на средний трафик, в этот час ложится первой.
Отдельно про двустороннюю связь с задержкой меньше 500 мс: собственное приложение защищённых p2p-видеозвонков Таннел построено на WebRTC, звонки идут напрямую между устройствами, и оно опубликовано в RuStore. Такую архитектуру мы не только проектируем для клиентов, но и эксплуатируем в собственном продукте.
Частые вопросы
Можно ли обойтись без адаптивного качества видео при небольшой аудитории?
На группе до полусотни человек с хорошим интернетом да. Как только среди студентов появляется мобильный канал или слабый Wi-Fi, часть аудитории начинает виснуть на буферизации. Добавить адаптивное качество на старте дешевле, чем переделывать архитектуру после первых жалоб.
Обязательно ли хранить видео на серверах в России?
Да, если в записи есть лица и голоса студентов: это персональные данные, и по 152-ФЗ они хранятся на серверах внутри страны. Обезличенная статистика просмотров без привязки к конкретному человеку под это требование не подпадает.
Что выбрать для урока с вопросами от группы: трансляцию или видеозвонок для всех?
Трансляция с задержкой в несколько секунд подходит, когда говорит в основном преподаватель, а вопросы идут текстом или короткими репликами. Видеозвонок для всех участников нужен, когда несколько человек говорят и видят друг друга одновременно, и такая архитектура дороже.
Сколько стоит защита курса от бесплатного распространения ссылок?
Подписанные временные ссылки закрывают большинство случаев и стоят недорого во внедрении. Полное шифрование на уровне устройства оправдано только для дорогих курсов или корпоративных контрактов с жёсткими условиями по контенту.
Чем реестр отечественного ПО отличается от свидетельства Роспатента?
Реестр Минцифры открывает участие в госзакупках и льготу по НДС. Свидетельство Роспатента подтверждает права на программу для ЭВМ, но ни закупок, ни льготы не даёт. Для поставок вузам и госзаказчикам нужен именно реестр.
Сколько времени занимает внедрение видеостриминга в существующее приложение?
Зависит от того, нужны ли только записанные лекции или ещё урок в реальном времени и двусторонняя связь. Точные сроки считаются по факту требований и озвучиваются в смете за 24 часа вместе с архитектурой.
Если вашему приложению для онлайн-обучения нужна разработка видеостриминга с размещением в России и защитой платных курсов, расскажите задачу, и мы вернёмся с архитектурой и сметой за 24 часа.
