Все мы знаем, причем на собственном опыте, что большинство из нас (пользователей интернета) редко проводят хотя бы один день без просмотра потокового видео. Рост популярности именно такого потребительского поведения в отношении контента связан с доступностью протоколов потоковой передачи видео (или стримингового видео).
Протоколы стримингового видео — это специальные стандартизированные правила и методы, которые разбивают видеофайлы на более мелкие части, чтобы затем их можно было доставить конечному пользователю для повторной сборки и просмотра.
Файлы должны быть сжаты для транспортировки, этот процесс достигается с помощью «кодека», например, такого, как самый распространенный H.264. Прежде чем можно будет передать файлы, их еще нужно сохранить в «контейнерном формате», таком как .mp4 или .avi. Источником видеофайла может быть непосредственно камера транслирующего пользователя в случае прямой трансляции или статические файлы в случае видео по запросу (VoD).
Развитие протоколов стримингового видео
Так как спрос на потоковое видео только растет, в том числе благодаря увеличению проникновения интернета, количество платформ потокового видео тоже увеличивается. В 1990-х годах потоковая передача в основном ограничивалась трансляциями спортивных мероприятий, в 2000-х технология начала набирать обороты, благодаря потоковой передаче на основе Flash и RTMP. Затем в 2010-х появились YouTube, Netflix и другие платформы. Прямая трансляция, как формат, действительно зародилась в середине 2010-х, а вскоре после этого были запущены Periscope и Facebook Live.
Сегодня рынок потокового видео является весьма оживленным, благодаря многочисленным платформам, компаниям-провайдерам и способам использования, включая live-аудио, потоковое воспроизведение фильмов и игр. Наряду с этими разработками также расширились возможности протоколов потоковой передачи видео.
Какие протоколы потокового видео самые популярные?
На сегодняшний день существует несколько протоколов потоковой передачи видео. Некоторые из них можно назвать устаревшими стандартами, но они тем не менее, все еще применяются. Другие, напротив, быстро развиваются, в первую очередь благодаря открытому исходному коду. Некоторые из протоколов довольно свежие, и им потребуется время, чтобы получить широкое распространение, но именно они имеют большой потенциал для формирования паттерна получения потокового видео в будущем. Не все протоколы поддерживают одни и те же кодеки. Ниже рассмотрим наиболее распространенных из них.
На сегодняшний день HLS является наиболее часто используемым протоколом для потоковой передачи. Первоначально он был выпущен Apple в 2009 году в рамках борьбы с форматом Flash в iPhone. Этот протокол совместим с широким спектром устройств, от десктоп-браузеров, смарт-телевизоров, телевизионных приставок, мобильных устройств на Android и iOS до видеоплееров на основе HTML5. Естественно, это позволяет стриминговым компаниям охватить максимально широкую аудиторию.
LS также поддерживает потоковую передачу с адаптивным битрейтом. Это технология, которая позволяет динамически доставлять видео, чтобы обеспечить наилучшее качество видео для конечных пользователей.
Единственным серьезным недостатком протокола HLS можно назвать связанную с ним большую задержку. Под задержкой понимается время, необходимое доставляемому контенту для перемещения от источника к месту запроса и обратно, особенно если передаются большие объемы данных.
MPEG-DASH — один из последних протоколов потоковой передачи, разработанный Moving Pictures Expert Group (MPEG) в качестве альтернативы стандарту HLS. Это стандарт с открытым исходным кодом, который можно настроить для любого аудио- или видеокодека.
Как и HLS, MPEG-DASH поддерживает потоковую передачу с адаптивным битрейтом, позволяя зрителям получать видео самого высокого качества, в зависимости от уровня, который может поддерживать их сеть.
WebRTC — тоже проект с открытым исходным кодом, целью которого является доставка потоковой передачи с откликом в реальном времени. Первоначально разработанный исключительно для чат-приложений с использованием VoIP, он стал популярен в приложениях видеочатов и конференций после того, как его купил Google. Некоторые из наиболее распространенных сегодня потребительских приложений, такие как Google Meet, Discord, Houseparty, Gotomeeting, WhatsApp и Messenger, используют именно протокол WebRTC.
Что делает WebRTC уникальным, так это то, что он базируется на потоковой передаче пирингового типа. Такой способ можно назвать предпочтительным решением, если для потоковой передачи необходима малая задержка.
SRT — еще один протокол с открытым исходным кодом, разработанный поставщиком технологий потоковой передачи Haivision. Этот протокол является предпочтительным для членов SRT Alliance: группы компаний, в которую входят поставщики технологий и телекоммуникаций. Основными преимуществами, которыми славится SRT, можно назвать безопасность, надежность, высокий уровень совместимости и потоковая передача с малой задержкой.
SRT может передавать потоковое видео высокого качества, даже если сетевые условия нестабильны. Он также не зависит от одного кодека, что позволяет использовать его с любыми аудио- и видеокодеками.
RTMP — это протокол, который уже многим известен. Он был разработан Macromedia (ныне известной как Adobe) для передачи аудио- и видеофайлов между потоковым сервером и Adobe Flash Player. Но с постепенным отказом от Flash в 2020 году его использование стало меньше связано с доставкой видео-контента, и больше для загрузки прямых трансляций на платформу через кодировщики с поддержкой RTMP. Это означает, что видеопоток от кодировщика отправляется на платформу потоковой передачи по протоколу RTMP, а затем доставляется конечному пользователю по обычному протоколу HLS.
RTSP — еще один устаревший протокол, который был разработан для индустрии развлечений и в основном используется для установления и управления мультимедийными сеансами между конечными точками. Хотя он похож на протокол HLS, сам по себе он не помогает передавать потоковые данные в реальном времени. Для выполнения своих задач потоковой передачи серверы RTSP должны работать вместе с RTP и другими протоколами.
Хотя он поддерживает потоковую передачу с малой задержкой, проблемой может быть несовместимость с большинством распространенных устройств и браузеров. Можно воспринимать его, как протокол, который способен доставлять потоковую передачу с малой задержкой избранной группе небольшой аудитории с выделенного сервера. Из-за того, что большинство IP-камер по-прежнему поддерживают RTSP, он по-прежнему остается стандартом, используемым в системах слежения и видеонаблюдения.
Что следует учитывать при выборе протокола потоковой передачи видео?
Выбор протокола потоковой передачи видео зависит от определенных факторов, которые могут оказаться важными для нужд вашего бизнеса. Вы можете захотеть охватить как можно более широкую аудиторию или свести к минимуму уровень задержки. Конечно, нужно обращать внимание на безопасность и конфиденциальность потоков. Ниже приводится примерное руководство о том, как сделать выбор на основе этих факторов.
- Конфиденциальность и безопасностьЕсли самой главной задачей является обеспечение целости и сохранности стримов на пути к конечному пользователю, стоит использовать протокол, обеспечивающий функции безопасности. Большинство протоколов, включая широко используемый стандарт HLS, обеспечивают безопасную потоковую передачу, но SRT — это протокол с лучшими в своем классе функциями безопасности и конфиденциальности.
- СовместимостьЕсли есть задача охватить как можно более широкую аудиторию потоковым контентом, подойдет протокол, совместимый с большинством устройств, платформ и браузеров. HLS — пожалуй, лучший вариант в этом случае. Его можно даже выбрать протоколом в качестве решения по умолчанию, если возникают какие-то сомнения.
- ЗадержкаHLS обеспечивает самый широкий охват для потоковой передачи, но создает большую задержку в процессе передачи. RTMP обеспечивает потоки с низкой задержкой, но не совместим с видеоплеерами HTML5. SRT поддерживает потоки с низкой задержкой, а WebRTC обеспечивает задержку в реальном времени. Если выбирать один из этих вариантов, стоит обратить внимание, что под угрозой может оказаться охват аудитории, поскольку эти протоколы не так широко поддерживаются в среде потоковых технологий.
Если вы не можете пойти на компромисс ни в охвате, ни в задержке, один из вариантов выхода в такой ситуации — использование протокола HLS. Таким образом, Вы принимаете решение в пользу ускорения мультимедиа контента и сможете обеспечить потоковую передачу со сверхнизкой задержкой.
- Адаптивный битрейтКак обсуждалось ранее, адаптивный битрейт позволяет обеспечить наилучшее возможное качество видео с учетом возможностей сети, устройства и программного обеспечения конечного пользователя. HLS и MPEG-DASH — это протоколы, которые поддерживают эту функцию.
Если у вас в планах разработка собственной видеоплатформы, необходимо заранее учесть расходы, связанные с инфраструктурой, транскодированием, доставкой и воспроизведением контента. В таком случае стоит рассмотреть облачную систему управления контентом VoD или универсальное решение для потоковой передачи в реальном времени, которое объединяет прием, управление, обработку, публикацию и другие аспекты потоковой передачи видео на одной платформе.