Что должен уметь продвинутый стриминг в 2021 году
Стриминг завоевал мир.
По сведеньям Grand View Research, объём мирового рынка лайвстриминга в 2020 г. достиг $50 млрд. Большой толчок отрасли дала пандемия. Но по прогнозам до 2028-го потребление будет расти в среднем на 21% в год.
Чем больше компаний занимается видеоконтентом на рынке, тем выше конкуренция, а значит, растут требования и к качеству. Поэтому отличным обязан быть не только сам контент, но и стриминг. Мало кто захочет досматривать до конца, если live-стрим медленно грузится или воспроизводится в низком разрешении. Зрители тут же потеряют интерес. Все эти моменты во многом зависят от того, какую стриминговую платформу вы выберете.
Каким должен быть лучший стриминговый сервис в 2021 г.? Рассказываем о пяти главных трендах.
1. Минимальные задержки
Представьте: вы проводите онлайн-квиз. У участников есть ровно минута, чтобы ответить на вопрос. Вы секунда в секунду прекращаете приём ответов. Но половина игроков не успела их отправить, потому что квиз транслируется с опозданием в 30 с. И когда у вас минута уже прошла, участники считают, что у них есть ещё полминуты в запасе.
Чтобы не возникало таких неприятностей, стримингу необходимо быть максимально близким к реальности. Это особенно актуально для:
- спортивных мероприятий;
- квизов и розыгрышей;
- онлайн-обучения;
- конференций и прямых линий.
Хотя сейчас сократить время стремятся не только для этих индустрий. Low Latency Streaming постепенно становится обязательным требованием к любым эфирам, ведь именно такие live-стримы обычно предпочитают смотреть.
Откуда берётся задержка
Чтобы это понять, надо знать, как в целом устроена отправка видеопотоков.
- Камера снимает. Отснятое помещается в память.
- Изображение отдаётся в буфер кодирования.
- Алгоритм сжатия подбирает подходящий способ сжать.
- Файл отправляется на видеосервер.
- Там проходит повторную обработку и оптимизацию для отдачи конечному юзеру на компьютеры, Smart TV, смартфоны, приставки (set-top box) и т.п.
- Оттуда отправляется зрителям.
- Попадает в декодер, который отдаёт его на отрисовку.
- Воспроизводится в пользовательском плеере.
Чтобы свести задержки к минимуму, надо попытаться сократить временные расходы на всех этапах. Продвинутый стриминговый сервис должен поддерживать новые, современные технологии для этого.
Какие существуют технологии для Low Latency
Low Latency Streaming — это стриминг с задержкой не больше четырёх секунд. Основные механизмы для этого, — Chunked CMAF, HTTP CTE, LL-HLS, SRT, CDN.
Chunked CMAF
CMAF — протокол потоковой передачи. Сделан по заказу Apple и Microsoft в 2017 г.
На его основе был создан расширенный формат — Chunked CMAF.
В протоколе видеофайл делится на сегменты (плей-листы) длительностью две–шесть секунд. Пока один сегмент воспроизводится, остальные загружаются в буфер. Там обычно находятся три-четыре сегмента. И пока буфер не заполнен, воспроизведение не начинается. Это приводит к задержкам в 10–30 с.
В обновлённом формате сегменты делятся на подсегменты (чанки). Они гораздо короче и начинают воспроизводиться до того, как будет передан весь плей-лист. Это сокращает отдачу в несколько раз.
HTTP CTE
CTE (Chunked Transfer Encoding) — это механизм передачи данных в протоколе HTTP. Реализован начиная с HTTP1.1.
Принцип его работы точно такой же, как у предыдущей описанной технологии. CTE делит видеофайл на несколько маленьких элементов. Они бывают любыми, вплоть до одного кадра.
Механизм очень удобен, когда неизвестна окончательная длина всего сообщения. Без HTTP CTE с каждым сообщением требовалось бы указывать заголовок Content-Length, чтобы клиент находил его конец. А в случае с онлайн-трансляцией не всегда есть возможность точно предсказать, когда она закончится.
С CTE фрагменты передаются вместе с указанием их длины, а конец обозначается последним куском с нулевой длиной.
LL-HLS
В обновлённой версии HLS будет поддержка Low Latency. От предыдущей версии отличается тем, что плей-листы делятся на маленькие частички. Минимальная длина чанка — 200 мс.
Помимо этого, в новой версии была усовершенствована работа с плей-листами. Они обновляются сразу после появления обновлений, а не после запроса, и вместо полного куска отправляется только его часть. То есть изначальный плей-лист сохраняется, а клиент получает только обновлённый кусок.
Если использовать LL-HLS вместе с CDN, задержку возможно сократить до тех же четырёх секунд.
SRT
Это протокол передачи данных на основе UDP. Разработан компанией Haivision специально для отправки видеофайлов по непредсказуемой среде.
UDP — более простой протокол, чем TCP. Его модель не содержит «рукопожатий» для упорядочивания и проверки целостности. Поэтому он доставляет быстрее, чем TCP.
Но так как в UDP не предусмотрена проверка правильного порядка пакетов, их целостности и исправление ошибок, в непредсказуемых средах он может отправлять сообщения неправильно. Что-то потеряется, что-то придёт не в том порядке.
SRT был создан, чтобы решить эту проблему. Информация по нему идёт с той же скоростью, как по UDP, но при этом есть функция восстановления потерянного, мониторинг состояния, исправление ошибок.
Как гарантируется целостность и правильный порядок:
- SRT проверяет каждый пакет по его порядковому номеру.
- Если на стороне получателя новый отличается от предыдущего больше чем на единицу, он не доставляется. Отправителю посылается сигнал, что искомое не было получено (NACK).
- Требуемое отдаётся заново.
Такой принцип работы надёжен и при этом даёт более высокую скорость, чем в TCP. TCP в аналогичной ситуации будет действовать по-другому. Он так же, как и SRT, подтверждает получение пакетов, но делает это не после каждого, а после определённой серии. Если в ней чего-то не хватает, TCP сообщит об ошибке, и получателю заново будет передана вся серия.
С SRT задержка составит 0,5–3 с. При этом он ещё и гарантирует надёжную доставку.
CDN
Это множество связанных между собой серверов (точек присутствия), которые получают содержимое с сервера-источника, кешируют иго и отправляют конечным потребителям. Основная её цель — обеспечить бесперебойную и почти мгновенную доставку контента для очень большой аудитории, будь то один человек, тысяча или миллион одновременно.
Например, вы ведёте прямой эфир из Германии и хотите, чтобы он показывался во всём мире. С CDN все будет получать его одинаково, почти мгновенно.
CDN-серверы забирают видеофайлы с сервера-источника и доставляют конечным потребителям. При этом сами точки присутствия располагаются близко к потребителям. Получается развёрнутая система с множеством маршрутов и узлов.
Готовый контент, который запрашивали ранее, кешируется на CDN-серверах и выдаётся при следующих запросах. А если речь идёт об онлайн-трансляциях, это работает так:
- Сервер-источник принимает запись с камер.
- Источник мгновенно шлёт его на точки присутствия.
- С точек присутствия оно доставляется ближайшим юзерам.
Нагрузка при этом распределяется равномерно. И если какой-то CDN-сервер перегружен, клиенты получат содержимое с другого ближайшего сервера. Это особенно существенно, если ваши live-стримы смотрят миллионы людей.
Стандартный механизм кеширования предполагает, что содержимое хранится на жёстких дисках в виде полных законченных сегментов по 6–10 с. Но для онлайн-трансляций это не оптимально: требуется несколько секунд, чтобы отдать материалы с дисков.
Чтобы избежать этого, мы кешируем в оперативной памяти и делим сегменты на более мелкие чанки. Так они скорее доставляются.
Ultra Low Latency и WebRTC
Ultra Low Latency называют задержки в пределах одной секунды. Главная технология, способная обеспечить такую скорость, — WebRTC.
Это стандарт связи, который даёт возможность передавать сообщения непосредственно между браузерами без дополнительных расширений и программ. Применяется и для видеозвонков, и для онлайн-трансляций.
- Браузер, инициирующий соединение, формирует SDP-пакет — набор информации о параметрах соединения: что будет отправляться и с помощью каких кодеков, будет ли браузер только принимать контент (онлайн-трансляция) или и принимать, и отправлять (видеочат).
- Принимающий браузер анализирует SDP-пакет, на его основе формирует свой и отправляет в ответ.
- Параллельно с этим клиенты анализируют состояние подключения, настраивается отправка UDP-пакетов.
- Как только необходимые обмен и настройка заканчиваются, устанавливается соединение, и браузеры обмениваются видеоконтентом.
Вместе с этим WebRTC применяет UDP. В онлайн-трансляциях или видеочатах правильный порядок не так актуален, поскольку отправка идёт в реальном времени. Поэтому использовать менее надёжное, но более простое и скоростное соединение в этом случае — лучшее решение.
С WebRTC очень легко организовать видеочат или онлайн-конференцию, поскольку не надо устанавливать и настраивать дополнительное ПО.
Так как стандарт изначально разрабатывался для создания видеозвонков, он сделан таким образом, чтобы выдавать максимально возможную скорость.
2. Безопасность
Уникальный материал необходимо хорошо защищать. В противном случае пираты легко смогут скопировать его и присвоить или выложить в свободный доступ. И тогда ваш продукт потеряет свою уникальность, а вы — желаемую прибыль.
Современный стриминговый видеосервис обязан использовать эффективные механизмы для защиты контента.
Инструменты, позволяющие надёжно защитить информацию:
- AES 128/256 Encryption — механизм шифрования, защищающий сообщения.
- Tokenization and Signed URLs — одноразовые безопасные персонализированные ссылки. Помогают исключить несанкционированные подключения, защищают от нелегального копирования.
- DRM — комплекс систем, определяющий доступ к контенту. Гарантирует один из наивысших уровней защиты.
- CORS — с его помощью возможно предоставить доступ к ресурсу ограниченному числу доменов. Для остальных он будет недоступен.
Подробнее читайте в статье «Как эффективно защищать видеоконтент».
3. Высокое качество и доступность видео
Продвинутая видеоплатформа гарантирует доступность live-трансляции при любом интернет-соединении и шлёт видеоконтент в высоком разрешении.
Adaptive Bitrate Streaming
Чтобы live-стрим грузился мгновенно при любом интернет-соединении, применяют адаптивный битрейт. Он подстраивает разрешение под скорость каждого конкретного юзера.
Если у аудитории хорошая связь, эфир будет идти в 4K/8K. При плохой связи live-стрим всё равно будет идти, но в более низком битрейте.
При этом пониженное качество бывает не у всего видеофайла целиком, а у отдельных частей. Например, человек находится в дороге. На каких-то участках его пути будет 4G, и онлайн-стрим будет в максимальном разрешении. А там, где мобильная связь будет хуже, битрейт снизится.
Видеокодеки, сжатие видео
Видеофайл в Full HD, а уж тем более в 4К или 8К весит очень много. Если бы он отдавался «как есть», без изменений, до получателей он бы шёл очень долго. Да и сам по себе файл такого объёма было бы просто негде хранить. Чтобы его было легче отправлять и хранить, он сжимается перед отправкой.
Существуют разные методы, позволяющие уменьшить объём. Например, есть вариант удалить некоторые элементы: звуки или цветовое кодирование.
Это не значит, что стрим точно станет менее качественным. Обычно удаляются несущественные элементы, которые человек не воспринимает. Например, наш глаз более чувствителен к яркости, чем к цвету, и число битов, которые отводятся на цветовое кодирование, допустимо сократить. Обычный человек без профессионального оборудования не заметит никакой разницы.
Объясняем на простом примере. Представьте, что у нас есть башенка из кубиков: внизу — три синих кубика, дальше — четыре зелёных, а сверху — два красных. Получается 9 кубиков.
Вместо того чтобы показывать все 9 кубиков, мы оставляем по одному кубику каждого цвета и подписываем, сколько каких кубиков подразумевается. Вместо 9 останется три.
Объект стал меньше. Но по цифрам мы понимаем, каким был оригинал, и восстанавливаем исходное состояние.
С видеоконтентом происходит то же самое. Вместо того чтобы фиксировать каждый пиксель, определяется количество одинаковых, их расположение и сохраняются только уникальные пиксели.
Механизм, отвечающий за это, называется видеокодеком. Он уменьшает число мегабайт, сохраняя визуальную составляющую.
Кодеки, имеющие сейчас самую большую популярность, — AVC, HEVC, VP8 и VP9. Также начинают обсуждаться и использоваться AV1 и VVX.
1. AVC (H.264). Лицензируемый стандарт. Создан группой экспертов по кодированию ITU-T совместно с ISO/IEC Moving Picture Experts Group (MPEG) в 2003 г. Способен без ущерба уменьшить объём более чем на 80%.
Очень важен для live-трансляций. Способен передавать данные со скоростью до 10 Мбит/с.
Уменьшение происходит за счёт объединения одинаковых элементов. Вместо того чтобы отправлять каждый пиксель однотонного фона, их объединяют в макроблок и обозначают, что весь кусок однотонный. А при воспроизведении пиксели восстанавливаются так, как они были расположены в оригинале. Это называется внутрикадровым прогнозированием.
Вместе с этим он умеет объединять кусочки в макроблоки не только в рамках одного кадра. Он просматривает несколько и определяет, что в них есть области, которые не меняются. Например, вы транслируете вебинар. Спикер сидит за столом и ведёт лекцию. Меняется только лицо лектора, двигаются его губы, а стол и фон остаются неизменными. Стандарт вычисляет, какие элементы изображения меняются, и шлёт только их, а всё другое остаётся без изменений. Это называют межкадровым прогнозированием.
Максимальная величина макроблоков — 16×16.
Сейчас это один из самых распространённых кодеков. Он есть во всех браузерах и на любых устройствах.
2. HEVC (H.265). Был сделан как более совершенная замена AVC. Цель его создания — уменьшить размер в два раза при сохранении того же качества. Поддерживает форматы до 8K и разрешение до 8192×4320 пикселей.
Особенно важен для 4K, т.к. сохраняет высокое разрешение и при этом доставляет видеопоток очень быстро.
Тоже использует внутрикадровое и межкадровое прогнозирование, но делает это намного эффективнее. Величина макроблоков достигает 64×64 — в разы больше, чем у предшественника. Это значит, что стандарт умеет отдавать меньшее число элементов, и общий размер будет меньше.
Согласно разным исследованиям, превосходит своего предшественника на 35–45%. Поддерживается на iOS и Android, на большинстве приставок и Smart TV, в Safari, Edge, Internet Explorer, а в перспективе будет в Chrome и Firefox.
3. VP8. Разработан компанией On2 Technologies. Был анонсирован в 2008 г.
По принципу функционирования похож на H264 и имеет примерно такую же эффективность. Он также применяет методы внутрикадровых и межкадровых прогнозов. Максимальная величина макроблоков — 16×16. Поэтому он сильно проигрывает H.256 в эффективности отдачи в Full HD и 4K.
Однако VP8 хорошо справляется со сжатием в реальном времени, поэтому он идёт в WebRTC как видеокодек по умолчанию.
VP8 есть во всех популярных браузерах и на Android. Но на iOS только в сторонних приложениях.
4. VP9. Видеокодек, созданный Google в 2013 г. Эволюционный преемник стандарта VP8. С 2014 года поддерживается в YouTube.
Во многом похож на HEVC. Оба одинаково эффективны, отлично подходят для 4K. VP9 тоже применяет макроблоки до 64×64. Но они не обязательно квадратные — стандарт умеет объединять пиксели и в прямоугольный кусочки. Такие блоки более эффективно обрабатываются, и это даёт преимущество.
Но, с другой стороны, у него всего 10 вариантов прогнозирования. Большее количество прогнозов даёт визуальное преимущество. Получается, что при использовании H.256 качество будет немного выше, но VP9 обеспечивает такую же быструю доставку.
Исследование 2014 г. показало, что алгоритм превосходит AVC и VP8 по эффективности на 40–45%.
Видеокодек, работающий на всех мобильных девайсах, на большинстве приставок и Smart TV, поддерживается во всех популярных браузерах, кроме Safari.
5. AV1. Это следующий шаг в развитии после VP9. Был создан в 2018 году ассоциацией Alliance for Open Media, в которую входят Google, Microsoft, Apple, Netflix, Amazon и другие крупнейшие компании из сфер электроники, видеопроизводства, разработки браузеров.
При создании разработчики опирались на предыдущий стандарт, наработки Cisco Thor Project и Mozilla Daala. Их целью было создать алгоритм, который будет принципиально лучше существующих решений. И им это удалось. В апреле 2018 Facebook Engineering провели исследование и выяснили, что AV1 на 30% лучше, чем VP9, и на 50% превосходит AVC.
Увеличить эффективность удалось за счёт улучшения внутрикадрового прогнозирования.
В HEVC и VP9 очень хорошо реализованы межкадровые прогнозы. Вспомним наш пример с вебинаром. Он начинается с того, что спикер сидит за столом и читает лекцию. Кодек передаёт первый кадр полностью — изображение спикера, стол и фон. Следующие не передаются полностью, отправляются только изменения. Первый называется опорным. Их может быть много, и это зависит от того, насколько динамично развивается действие и как часто меняются сцены.
И если промежуточные, в которых передаются только изменения, весят очень мало, то опорные по-прежнему достаточно массивны. Разработчики AV1 решили, что стоит сделать упор на уменьшение размера опорных, а значит, уделить внимание внутрикадровым прогнозам.
Например, AV1 прогнозирует цветность по яркости. Полностью кодируется только яркость, а цветность восстанавливается на основе значений яркости. За счёт этого сокращается количество информации и уменьшается объём.
Чтобы при минимальной информации прогноз был точным, он идёт по фрагментам. Например, мы видим небо. В одной части оно светлее, в другой — темнее. Чтобы не передавать все оттенки синего, всё небо объединяется в один кусочек. При этом тот кусок, где яркость выше, должен быть светло-голубым, а чем ниже яркость, тем темнее оттенок, вплоть до тёмно-синего.
Это даёт возможность объединять пиксели в более крупные элементы. Чем крупнее, тем их меньше и тем меньше будет весить видеофайл.
Единственный минус — он пока мало распространён. Приставок и Smart TV с его поддержкой тоже пока мало, ведь кодек довольно молодой. Но зато в самых популярных браузерах — Mozilla Firefox, Edge и браузерах на базе Chromium — он уже функционирует.
4. Грамотная монетизация
На стриминге все зарабатывают по-разному. Кто-то продаёт готовые ролики или доступ к live-стримам за деньги по подписке. А кто-то делает бесплатный контент, но зарабатывает на рекламе.
Существуют разные типы вставки рекламы:
- Преролл — запускается перед видеоконтентом.
- Мидролл — ролик воспроизводится через заданные временной промежуток после начала.
- Постролл — показ начинается после видео.
- Паузролл — ролик запускается, когда юзер ставит на паузу.
Блок запускается по меткам DTMF/SCTE-35 внутри потока или по расписанию в чанках. Могут предлагаться протоколы VAST/VPAID.
Современные механизмы показа роликов позволяют не просто вставлять интеграции, но и получать статистику по взаимодействию. Так вы сможете понять, сколько людей посмотрело ролик, какая реклама не привлекает, и её чаще пропускают, а какую досматривают до конца, оказывает ли влияние на это местоположение или другие факторы.
5. Комплексное решение или отдельные модули
Вы ведёте поиск полноценного сервиса с поддержкой стриминга на всех этапах от захвата до воспроизведения? Или у вас есть своя система, но вы хотите модернизировать её с помощью отдельных компонентов?
Важно, чтобы был выбор: тратить деньги на систему целиком или подключить только отдельные функции и не платить за лишнее. Всегда обращайте внимание, какой комплект услуг входит в стоимость и есть ли вариант что-то исключить из предложения.
Например, наша стриминговая платформа обеспечивает все этапы:
- Захват.
- Конвертирование потока.
- Управление медиаконтентом.
- Доставка.
- Воспроизведение.
Но если вам не требуется сервис целиком, то мы интегрируем в ваш бизнес отдельные модули.
Стриминговая платформа EdgeЦентр
EdgeStreaming отвечает всем современным требованиям. У нас огромный опыт на рынке видеоконтента. Мы применяем передовые технологии для видеопередачи. Обеспечиваем задержки в пределах четырёх или одной секунды.
Защищаем контент от нелегального просмотра и копирования с помощью AES, DRM, CORS и безопасных ссылок.
Используем все современные видеокодеки, о которых говорилось в этой статье, и передаём видео в 4К или даже 8K. Но при этом оно будет показываться на любых устройствах при любом интернет-соединении благодаря адаптивному битрейту.
Органично встраиваем рекламу. Предлагаем четыре режима: преролл, мидролл, постролл и паузролл.
Что ещё умеет EdgeStreaming
1. Транскодинг. Преобразование видеофайлов из одного формата в другой так, чтобы оно соответствовало требованиям того гаджета, на котором воспроизводится.
Например, некоторые форматы не функционируют на смартфонах и планшетах. Не дублировать содержимое помогает транскодинг. Онлайн-стрим перекодируется в форматы для разных устройств.
Транскодер также изменяет битрейт, подстраивая его под разных пользователей. Например, у кого-то старый компьютер, который не поддерживает Full HD, — для таких пользователей стрим будет перекодирован в HD. Или, например, кто-то находится в условиях плохого интернета — чтобы она не тормозила каждые десять секунд, битрейт снижается до оптимального уровня.
С EdgeStreaming вы сможете доставлять видеоконтент на любые девайсы в HD, Full HD, 4K и 8K. Транскодирование осуществляется на наших мощных серверах.
- Запись передаётся на серверы.
- Там она транскодируется. При необходимости в видеопоток вставляются логотип и рекламные интеграции.
- Передаётся в CDN.
- Доставляется самыми короткими маршрутами.
Ваша трансляция будет воспроизводиться у каждого, на любых устройствах и при любом интернете.
2. HTML5-плеер.
- Поддерживает live-трансляции и видео по запросу.
- Совместим с любой платформой.
- Может ускорять воспроизведение в два раза.
- Поддерживает субтитры на разных языках.
- Даёт возможность настроить автовоспроизведение.
- Поддерживает рекламные протоколы.
- Сохраняет метатеги для радиостанций.
- Генерирует скриншоты через заданный интервал..
- Внешний вид возможно кастомизировать.
3. DVR. Запись и перемотка прямого эфира. Не беда, если кто-то пропустит интересный момент: он всегда сможет перемотать назад и пересмотреть пропущенное.
Функция позволяет записывать до четырёх часов.
4. Единая панель управления. Если у вас уже есть наша CDN, вам не нужно заводить отдельный личный кабинет. Управляйте продуктами через общую панель с интуитивно понятным интерфейсом.
5. Статистика и аналитика. Узнавайте число зрителей, уникальных пользователей, список рефералов и другую информацию. Любая статистика есть в личном кабинете.
6. Ретрансляция в любые соцсети. Ведите онлайн-стрим сразу в нескольких соцсетях. Для этого не нужно ничего подключать дополнительно. Просто добавьте нужные соцсети, и ретрансляция пойдёт туда автоматически.
7. Круглосуточная техподдержка. При организации онлайн-трансляций особенно важно, чтобы всё было хорошо: чтобы у всей аудитории был отличный звук, чёткое изображение, быстрая загрузка без торможения. А если возникают неполадки, необходимо устранять их мгновенно.
Наши специалисты оперативно решат любую проблему. И не важно, день это или ночь — на большинстве тарифов поддержка на связи 24/7.
Протестируйте EdgeStreaming. Посмотрите, как он работает, и убедитесь, что это эффективное решение. Или начните с бесплатной консультации.