Что такое hls auto
Что такое hls auto
Плюсы и минусы HTTP Live Streaming
HLS (HTTP Live Streaming) — это протокол для передачи видео с адаптивным битрейтом. Первоначально разработанный Apple для яблочных систем, сегодня HLS стал самым используемым протоколом для передачи потокового медиа. В этой статье — всё про его особенности.
Как работает HTTP Live Streaming
Протокол HLS разбивает поток медиаданных на небольшие фрагменты, а затем создает специальный файл — манифеста: там хранится информация об этих фрагментах. Плеер периодически перезапрашивает манифест: если в файле появляются новые фрагменты, он загрузит и воспроизведет их. При этом благодаря адаптивному битрейту качество видео подстроится в зависимости от размера экрана или пропускной способности соединения с интернетом.
HLS исторически поддерживает такие кодеки медиа, как h.264, AAC или MP3. Относительно недавно этот список дополнил и кодек видео h.265. Аналогичным образом работают протоколы MPEG-DASH, Microsoft Smooth Streaming и Adobe HTTP Dynamic Streaming (HDS).
Преимущества протокола HLS
Доставка на любые устройства
Microsoft Smooth Streaming и Adobe HTTP Dynamic Streaming (HDS) HLS поддерживают большинство браузеров и мобильных устройств. В перспективе MPEG-DASH тоже может получить широкую поддержку, но пока что он не поддерживается устройствами Apple. Остальные два протокола, Microsoft Smooth Streaming и Adobe HTTP Dynamic Streaming (HDS), сегодня совсем не распространены.
Запись и прямой эфир
Протокол HLS поддерживает как прямые трансляции, так и просмотр записей. Благодаря технологии манифеста и фрагментации, перемотка работает быстро и доступна одновременно с возможностью переключиться в прямой эфир. Это важное преимущество перед протоколами RTMP и WEBRTC, ориентированными только на прямой эфир.
Управление цифровыми правами
Протокол HLS поддерживает управление цифровыми правами (DRM). Технология позволяет отследить незаконное использование контента — как записей, так и прямого эфира. При этом инфраструктура управления цифровыми правами достаточно проста.
Неограниченная аудитория
Протокол HLS очень хорошо масштабируется на любое количество зрителей с использованием сервисов CDN и гарантирует бесперебойную доставку контента в любую точку мира.
Недостатки протокола HTTP Live Streaming
Любые технологии не идеальны, и HLS не исключение. Один из наиболее распространенных вопросов — латентность.
Задержки HLS
Латентность — это промежуток между тем, когда событие происходит в реальном мире, и тем, когда зрители смогут его увидеть, смотря прямой эфир. Это время необходимо на оцифровку изображения и звука, подготовку нескольких вариантов для адаптивного битрейта и доставку в плеер через интернет.
Но цель HLS — максимальная совместимость с клиентскими устройствами, а не минимизация абсолютной задержки. Поэтому типовое значение задержки — 10-25 секунд.
Обычно это проблема для узкой аудитории клиентов — например, для геймеров и любителей спорта. В этих ситуациях скорость важна. Тем не менее, большинство пользователей могут легко игнорировать небольшую задержку потока, потому что это никак не влияет на качество полученной информации.
Можно ли решить вопрос с латентностью?
Протокол HLS продолжает развиваться. Летом 2019 года компания Apple разработала расширение LHLS — оно позволяет достичь задержки менее 2 секунд. В перспективе эта модификация будет поддерживаться практически всеми плеерами и мобильными устройствами.
В Facecast мы также разработали варианты потоковой передачи HLS с низкой задержкой. Наше решение уменьшит задержку до 10 секунд или меньше. Оно соответствует современным стандартам безопасности браузера посредством доставки HTTPS и позволит охватить все мобильные устройства.
Мы надеемся, что в ближайшем будущем мы сможем предложить это решение для пользователей публичной версии для тарифа Профи и выше.
Вывод
HLS — это мощная технология, которая стала отраслевым стандартом. Надеемся, эта статья познакомила вас с основами этой технологии, принципами ее работы, ее преимуществами и недостатками.
Есть вопросы о HLS? Дайте нам знать об этом в комментариях!
Что такое hls auto
HLS (HTTP Live Streaming) — протокол, предназначенный для передачи мультимедиа (видео и аудио) по сети. Разработан в 2011 году компанией Apple.
Благодаря своим преимуществам, протокол HLS широко применяется провайдерами интернет-телевидения, а также онлайн-кинотеатрами, предоставляющими услуги «видео по запросу».
Преимущества HLS
Кроме того, для вещателей HLS прост в настройке, а его использование не предусматривает лицензионных сборов и отчислений.
Недостатки HLS
Основной недостаток протокола HLS проявляется при просмотре «живых» эфиров и заключается в отставании картинки, которую просматривает абонент на своём экране, от того, что происходит в реальности. Это связано с тем, что происходящее сначала при съёмке записывается, затем кодируется, передаётся через интернет на удаленные серверы и декодируется для последующего просмотра. На всё это, как правило, требуется порядка 20-60 секунд.
Как работает HLS
Трансляции по протоколу HLS осуществляются по принципу дробления потока на фрагменты.
Если трансляция медиа ведётся в режиме «по запросу», M3U-файл содержит ссылки сразу на все фрагменты фильма. В режиме «живой» трансляции (например, при просмотре классического телеканала) в M3U-файле есть только ссылки на несколько фрагментов, при каждом запросе клиентского проигрывателя к плейлисту его содержимое динамически обновляется, пополняясь новыми фрагментами.
Когда использовать протокол HLS
HTML5 и HLS созданы на открытом коде, их можно изменять как угодно и использовать бесплатно. Также они более безопасные, надежные и быстрые чем предшественники. В статье постараемся раскрыть понятия онлайн вещания, дадим описание стриминговым протоколам и рекомендации по использованию HLS.
Что такое HLS
HLS расшифровывается как HTTP Live Streaming – протокол для потоковой передачи медиа данных через интернет. HLS нарезает видео контент в формате MP4 на короткие 10-секундные блоки, чанки. Эти короткие фрагменты доставляются по HTTP, что делает протокол совместимым с большинством устройств и файерволов.
HLS обеспечивает в первую очередь отменное качество онлайн трансляций. Но, нужно учитывать, что задержка при онлайн вещании составляет 15-30 секунд. На серверной части создатель трансляции может назначить кодирование потока в несколько качеств. Плеер затем динамически запрашивает оптимальное качество, исходя из ширины интернет канала в конкретный момент. Соответственно качество фрагментов может отличаться.
Например, мобильный телефон проигрывает видео в HD качестве, а минутой позже зритель попадает в зону плохого приема. Когда плеер обнаруживает снижение качества связи, он запрашивает видео чанки меньшего качества. Таким образом снижается буферизация, зависание и другие проблемы.
История создания HLS
Изначально HLS был запущен компанией Apple летом 2009 года вместе с IРhone 3. Предыдущие модели IРhone испытывали проблемы с онлайн вещанием, из-за того, что иногда переключались между Wi-Fi сетями и мобильной передачей данных.
Перед выходом HLS, главным стриминговым медиа протоколом Apple был Quicktime Streaming Server. Хороший сервис, но так как он использовал нестандартные порты для передачи данных, его RTSP протокол периодически блокировался файерволами. В купе с медленным интернетом это привело к отказу от данного протокола. Но уроки, полученные при его реализации, очень пригодились в разработке HLS. Техническая сторона
Плеер пользователя должен распознать ухудшение или улучшение скорости передачи данных в сети интернет. Когда такое событие происходит, плеер обращается к файлу-манифесту, для определения на какое качество видео переключиться. После этого плеер запрашивает индексный файл для конкретного качества, чтобы загрузить фрагмент видео, на котором остановился зритель. Весь этот процесс незаметен для пользователя. Протокол HLS также поддерживает скрытые субтитры,
Обзор стриминговых протоколов
Каждый из созданных ранее протоколов являл собой реализацию какой-либо инновации в медиа стриминге. Были и «войны форматов», как HD-DVD с Blu-Ray и противостояние Betamax с VHS. HLS лидер онлайн вещания, но так было не всегда и не факт, что сохранится в будущем.
RTMP
RTMP или Real-Time Messaging Protocol, протокол потоковой передачи данных в реальном времени. Был создан Macromedia в середине 2000 для доставки аудио и видео контента. Часто его называют просто Flash. Позже Macromedia объединилось с Adobe Inc, который продолжает развивать RTMP как полуоткрытый протокол.
Для устройств и браузеров, которые поддерживают Flash, HDS будет лучшим выбором. Он дает минимальную задержку при вещании, как и HLS разделяет медиа файлы небольшие фрагменты, поддерживает шифрование и DRM.
Microsoft Smooth Streaming
Microsoft создал свой протокол онлайн вещания, Microsoft Smooth Streaming. MSS также использует адаптивный битрейт, чтобы доставлять контент в наилучшем возможном качестве. Вещание с адаптивным битрейтом было представлено в 2008 году. С помощью MSS вещали Летние Олимпийские Игры 2008 года. Основным пользователем данного типа вещания является платформа XBox One. При этом, MSS один из наименее популярных протоколов сегодня.
MPEG-DASH
Одним из последних значимых решений в сфере стриминговых протоколов является MPEG-DASH, где DASH означает Dynamic Adaptive Streaming over HTTP, Динамическое Адаптивное Вещание через HTTP. Преимущество MPEG-DASH в том, что он признан единым международным стандартом вещания медиа через НТТР. На данный момент, он еще не широко распространен и далеко не все компании вещания поддерживают его. Но, по общему мнению, через несколько лет именно этот стандарт станет самым популярным протоколом вещания.
MPEG-DASH не зависит от вида кодека, вы можете использовать любой из них для пересылки медиа с помощью этого протокола – Н.264, HEVC/H.265, VP10
Когда же использовать HLS для онлайн вещания
Мы рекомендуем использовать HLS все время. Это самый современный и широко поддерживаемый протокол медиа стриминга. Без него не обойтись, если вы хотите вещать на мобильные устройства. Нативная поддержка HTML5 плеера и конечно же адаптивный битрейт обеспечивают оптимальное качество просмотров.
Хранение видео в Yandex.Cloud
Если вам нужно добавить на свой сайт видео, то может возникнуть вопрос, где его хостить и как потом раздавать. В этом посте разберем варианты и рассмотрим примеры использования Yandex Object Storage.
Формат MP4 знаком, наверное, всем. Но если мы хотим показывать видео на сайте эффективно, то стоит задуматься: лучшее ли это решение для нашей задачи — просто выложить все видео одним файлом MP4?
Протокол HLS (HTTP Live Streaming) был предложен в 2009 году и к настоящему времени де-факто стал стандартом в области адаптивного видеостриминга.
HLS был разработан Apple как замена их собственной разработки QuickTime Streaming Server, а также как альтернатива другому популярному на тот момент протоколу — Real-Time Messaging Protocol (RTMP). Этот протокол, выпущенный Adobe в 2002 году, использовал технологию Flash, чтобы передавать видео с низкой задержкой через интернет. Не смотря на то, что Flash давно «умер», RTMP до сих пор остается популярным протоколом для видеотрансляций.
Что же такое HLS?
Хотя HLS не так широко известен, но он, наряду с MPEG-DASH и SRT, остается одним из главных протоколов, которые обеспечивают доставку видео- и аудиоконтента в современном интернете. Велики шансы, что вы пользуетесь им каждый день, даже не задумываясь об этом. Особенно если вы — пользователь экосистемы Apple.
Хотя HLS и был разработан в Apple, он широко поддерживается и на других платформах: Linux, Windows, смартфонах с Android и iOS, OTT-устройствах, Smart TV, а также в браузерах Google Chrome, Safari, Android Browser, Microsoft Edge, Chrome for Android и Opera Mobile. На части платформ поддержка нативная, в других же она реализована через JS-плееры.
Тот факт, что потоковая передача HLS обычно осуществляется через видеоплеер HTML5, делает HLS универсальным и широко совместимым. Его часто называют «HTML5-видео», что не совсем точно. Видеоплеер HTML5 просто совместим с HLS.
Что значит «протокол»?
HLS — это протокол потоковой передачи видео. Но что это означает? Возможно, вы слышали термин «кодек», но важно отметить, что потоковый протокол — это не кодек. Протокол — это более широкая категория.
Потоковый протокол — это стандартизированный метод передачи видеоконтента между устройствами. Протокол может предполагать использование определенного кодека (или кодеков), который будет использоваться для сжатия и распаковки видео- и аудиоконтента.
Например, HLS поддерживает множество популярных кодеков:
Audio: AAC-LC, HE-AAC+ v1 & v2, xHE-AAC, Apple Lossless, FLAC
Video: H.265, H.264
Преимущества HLS
HLS предназначен для обеспечения надежности и динамической адаптации к сетевым условиям путем оптимизации (т. е. ухудшения или улучшения) воспроизведения видео для доступных скоростей интернета. Кроме того, он «заботится» о разных аспектах, которые связаны с доставкой видеоконтента зрителям:
Стриминг с адаптивным битрейтом (Adaptive Bitrate Streaming) — HLS подстраивает качество видео под текущую скорость интернет-канала. Это позволяет авторам предлагать несколько видеопотоков в разном качестве, а плееру переключаться между ними незаметно.
Пример среднего битрейта видео (Кбит/с), источник: Apple
Совместимость со многими устройствами — HLS гарантирует, что ваш видеоконтент будет воспроизводиться на любом устройстве, которое может запустить совместимый плеер (например, HTML5).
Субтитры — HLS поддерживает скрытые субтитры. Это позволяет авторам встроить несколько потоков субтитров (например, на разных языках).
Возможность менять аудио дорожку — HLS поддерживает несколько потоков аудио, между которыми можно переключаться.
Возможность вставлять рекламу — HLS использует для этого технологии VPAID и VAST.
Масштабирование — HLS обладает высокой масштабируемостью для доставки видеофайлов и потокового контента через глобальные сети доставки контента (CDN). В отличие от протокола RTMP, который работает совместно с Flash Player, HLS может легко масштабироваться для доставки с помощью обычных веб-серверов через CDN. Распределяя рабочую нагрузку по сети серверов, CDN приспосабливаются к всплескам вирусной аудитории и гораздо большим, чем ожидалось, живым аудиториям. CDN также помогают улучшить качество просмотра, кешируя аудио- и видеосегменты. Для сравнения, поддержка CDN для RTMP быстро снижается. RTMP также требует использования выделенного сервера потоковой передачи, что делает его более ресурсоемким для развертывания.
Защита от пиратства — реализуется через поддержку большого количества технологий DRM.
Вот более подробный пост про то, как можно ограничить доступ к видео при помощи шифрования AES-128.
Недостатки HLS
HLS имеет некоторые ограничения, но они связаны с конкретными проектными решениями, которые были приняты при разработке протокола.
Часть этих ограничений связана с задержкой. HLS ставит во главу угла комфорт пользователя, а не низкую задержку, поэтому live-контент, который транслируется с использованием протокола HLS, не является достаточно «живым». Зритель увидит его с задержкой до 30 секунд. Таким образом, HLS — не лучший выбор для таких приложений, как веб-конференции или управление устройствами, где необходимо видео в реальном времени (камеры и дроны). В этом случае лучше использовать более быстрый потоковый протокол, например WebRTC (Web Real-Time Communications).
Задержка в HLS возникает из-за того, что протокол разбивает видео на множество многосекундных фрагментов (сегментов), которые обычно имеют длительность 2–6 секунд. И поскольку протокол HLS также должен буферизировать несколько таких небольших сегментов одновременно, задержка может составлять десятки секунд. Однако если задержка или плохие сетевые условия не являются проблемой, то HLS — это протокол, который вам нужен.
Итак, почему стоит использовать именно HLS?
С HLS создатели контента могут подготовить версии своего видео для нескольких различных интернет-каналов и условий воспроизведения: 3G, 4G, LTE, медленный публичный Wi‑Fi, быстрый домашний интернет.
Различные поставщики CDN постепенно отказываются от поддержки RTMP, заявляя, что его развертывание становится слишком дорогим. Вместо этого набирают популярность такие протоколы, как HLS, SRT и MPEG-DASH.
Adobe перестал поддерживать технологию, на которую опирается RTMP. Поэтому однажды ваш процесс потоковой передачи RTMP станет технологически устаревшим и потеряет поддержку со стороны производителя. Это лишь вопрос времени.
HLS оптимизирует доставку аудио и видео на обширный спектр мобильных, настольных, планшетных и OTT-устройств.
HLS позволяет доставлять видео по запросу с помощью шифрования и аутентификации.
HLS значительно снижает затраты на CDN. При этом он обеспечивает только оптимальный битрейт для клиентской сети и избегает сценария «частичного воспроизведения и полной загрузки», который присущ прогрессивной потоковой передаче HTTP. Например, когда всё видео представлено одним файлом MP4.
Apple App Store требует, чтобы приложения с десятиминутным (и более) видео использовали HLS.
Практическая часть
Надеюсь, я смог вас убедить, что сегодня для распространения видеоконтента через интернет стоит смотреть в сторону HLS.
Давайте теперь на примере рассмотрим способ, как нам использовать объектное хранилище в Yandex.Cloud.
Object Storage — это решение для хранения больших объемов данных за относительно небольшие деньги. Оно идеально подходит для чего-то вроде видеофайлов, которые, как правило, имеют довольно большой объем. Доступ к файлам (или объектам, как их часто называют) осуществляется через HTTP(S), что делает Object Storage отличным решением для хранения и обслуживания ваших HLS-видео.
Для начала нам понадобится бакет в хранилище. Если у вас его нет, то вот инструкция, как его создать.
Подготовка видео
Если у вас уже есть видео в формате HLS, то смело переходите к следующему разделу.
Если же его нет, то вам понадобится утилита ffmpeg, при помощи которой вы сможете конвертировать видео и аудио во множество форматов, в том числе HLS.
Установка ffmpeg
Скачайте последнюю версию отсюда.
Откройте консоль в папке.
Выполните команду brew install ffmpeg
Вызовите ffmpeg — вы должны будете увидеть информацию о версии ffmpeg.
Видео для примера
Возьмем какой-нибудь видеофайл и посмотрим информацию о нем:
В консоли появится приблизительно следующее:
Конвертация
Подготовим команду для конвертации видео:
Теперь подробно разберем, что означают все эти ключи:
-i sample.mp4 — задает sample.mp4 в качестве входного файла.
-vf «scale=w=1280:h=720:force_original_aspect_ratio=decrease» — масштабирует видео до максимальных размеров в пределах заданного разрешения 1280×720 с сохранением соотношения сторон.
-ac:a:0 2 — указывает, что если в первом аудиопотоке (a:0) больше двух каналов, нужно смиксовать их в стереосигнал.
-profile:v main — устанавливает профиль кодека H.264 в main (это означает включение поддержки всех современных устройств). Подробнее в статье.
-crf 20 — Constant Rate Factor, высокоуровневая настройка качества.
2 сек) — это важно, влияет на корректную нарезку на сегменты.
-sc_threshold 0 — не создавать ключевые кадры при смене сцены.
-hls_time 4 — указывает длину сегмента в секундах. Реальная длина будет зависеть от ключевых кадров.
-hls_playlist_type vod — добавляет тег #EXT-X-PLAYLIST-TYPE:VOD и сохраняет все сегменты в плейлист.
-hls_segment_filename sample/720p_%03d.ts — явным образом задает имена файлов для сегментов.
Утилита ffmpeg поддерживает несколько входных и выходных файлов и все результаты могут быть сгенерированы параллельно одной длинной командой.
Очень важно, чтобы помимо параметров разрешения и битрейта команды были идентичны, тогда результаты будут правильно выровнены, то есть ключевые кадры будут установлены в нужных местах, чтобы обеспечить плавное переключение между ними «на лету».
Мы создадим четыре версии с разрешениями:
1080p 1920×1080 (original)
Мастер-плейлист
HLS-плеер должен знать, что существует несколько версий нашего видео, поэтому мы создаем мастер-плейлист HLS, чтобы указать их и сохранить вместе с другими плейлистами и сегментами в файл playlist.m3u8.
Как правильно выбрать битрейт
Битрейт зависит в основном от разрешения и типа контента. При установке слишком низкого битрейта пикселизация изображения будет особенно видна в тех областях, где происходит быстрое движение. Когда битрейт слишком высок, выходные файлы могут быть чрезмерно большими без дополнительного значения.
Чтобы выбрать правильный битрейт, нужно понимать его содержимое. Видео с резкими движениями, например запись спортивных или новостных событий, потребует более высокого битрейта, чтобы избежать пикселизации. А для контента с плавными движениями в кадре, например, музыкального концерта или интервью, будет достаточно низкого битрейта без видимых изменений качества.
Вот некоторые хорошие значения по умолчанию:
Загрузка данных
Настройка бакета
Для того чтобы видеоплееры могли получить доступ к видеофайлам, необходимо указать настройки CORS в бакете.
Это максимально широкое правило для примера.
Все готово
Если вы хотите ограничить круг сайтов, куда можно будет встраивать видео, то прочитайте этот пост.
Теперь можно выкладывать видео на свой сайт.
В пример я добавил минимальный контрол для переключения уровня качества.
Вот использованный плеер и react-обертка. А вот альтернативный плеер.
Итак, в чем же плюс?
Если вы откроете консоль, то увидите, что после того как браузер загрузил несколько первых сегментов видео, загрузка приостанавливается. Это позволяет нам экономить трафик в тех случаях, когда пользователь открыл страницу с видео, начал просмотр видео и остановился. В этом случае нам не нужно загружать весь видеофайл целиком. Мы можем вовремя остановиться, а потом, если это понадобится (пользователь продолжит воспроизведение), загрузить остальное.
Статьи
SRT, HLS и MPEG-DASH – будущее потокового вещания
Компании и провайдеры сетей доставки контента (CDN) готовятся к будущему, где потоковое вещание получит ещё более широкое распространение. Поэтому потребность в более эффективных протоколах такого вещания становится как никогда актуальной. Встречайте будущее живых трансляций – SRT, HLS и MPEG DASH. Давайте посмотрим, что представляет собой каждый из этих протоколов прямой трансляции, их преимущества и применение. А чтобы помочь вам выбрать тот, который подходит именно вам, в конце этой статьи приведено краткое сравнение.
Secure Reliable Transport (SRT)
SRT – восходящая звезда потоковой передачи. Протокол обеспечивает высокое качество видео и аудио с низкой задержкой по ненадёжному общедоступному Интернету. Фактически вы можете контролировать величину задержки и устранять такие проблемы, как дрожание из-за потери пакетов в плохих сетях. SRT также упрощает обход файерволов без помощи IT-специалиста, а также экономичен при развёртывании в существующей сетевой инфраструктуре. Кроме того, SRT предлагает безопасную потоковую передачу с 256-битным шифрованием AES.
SRT – это потоковый протокол с открытым исходным кодом, который набирает популярность благодаря «Альянсу SRT», объединяющему усилия многих лидеров отрасли и разработчиков с целью его продвижения и внедрения. Epiphan Video является сертифицированным членом «Альянса SRT» наряду с YouTube, Akamai, Wowza и другими. SRT включает в себя популярное программное обеспечение, в которое уже встроены OBS Studio, gstreamer и VLC.
Это фактически «технология замены спутника» – низкая стоимость и способность SRT доставлять высококачественный контент через Интернет в режиме, близком к реальному времени, дают вещателям жизнеспособную альтернативу дорогостоящей спутниковой технологии.
Преимущества
Как работает SRT
Между источником SRT (кодер) и получателем SRT (декодер) устанавливается выделенная линия связи для управления и восстановления пакетов. Получателем может быть сервер, CDN или другое устройство SRT. SRT использует свой собственный метод восстановления после потери пакетов, используя UDP-пакеты по сети, которые можно настроить для адаптации к изменяющимся условиям сети. Когда сетевые условия плохие, можно добавить больше буферизации пакетов для улучшения качества видео. По мере улучшения условий в сети величина задержки может быть уменьшена для потоковой передачи практически в реальном времени.
SRT обеспечивает прохождение через любые файерволы между источником и получателем. Для этого протокол имеет три режима: рандеву и вызов/слушатель.
Режим рандеву является самым простым и обычно не требует участия IT-специалистов для настройки прохождения файрволов между источником и получателем SRT. Если вы не можете пройти через сетевой экран, то следует использовать режим вызов/слушатель. Однако для настройки пересылки трафика потребуется определённое участие IT-специалистов, чтобы трафик, полученный на общедоступный IP-адрес и порт устройства-получателя SRT, переадресовывался на устройство в локальной сети.
Применение SRT
SRT идеально подходит для отправки нескольких удалённых каналов новостей по непредсказуемым сетям в центральный пункт назначения для производства и распространения, например, в модели вещания, когда удалённые журналисты сообщают в прямом эфире о местонахождении. Он также отлично подходит для привлечения удалённых гостей с низкой задержкой для интервью или двусторонней беседы. Всякий раз, когда требуется высококачественное видео и аудио по сетям с непредсказуемым качеством, SRT намного превосходит качество любого вызова по Zoom, потока WebEx или WebRTC.
HTTP Live Streaming (HLS)
HLS – это адаптивный протокол потоковой передачи на основе HTTP, который отправляет видео- и аудиоконтент по сети в небольшие сегменты потокового мультимедиа на основе TCP, которые повторно собираются в месте назначения. Стоимость развёртывания HLS является низкой, поскольку она использует существующую сетевую технологию на основе TCP, что является привлекательным для CDN, желающих заменить старые (и дорогие) RTMP-серверы. Но поскольку HLS использует TCP, то он работает по принципу «качество важней задержки», поэтому время задержки может быть высоким (например, в секундах, а не в миллисекундах).
HLS был первоначально разработан Apple Inc. в качестве протокола для потоковой передачи мультимедиа на устройства Apple. С тех пор Apple разработала HLS (push), который является потоковым протоколом открытого стандарта, доступным для всех устройств. В настоящее время HLS поддерживает видео, кодированное с использованием кодеков H.264 или HEVC.
Преимущество HLS заключается в том, что он предназначен для адаптации к различным условиям сети. Разные версии потока отправляются с разными разрешениями и битрейтами. Зрители могут выбрать то качество потока, что они хотят. HLS также поддерживает несколько звуковых дорожек, что означает, что ваш поток может иметь несколько языковых дорожек, из которых пользователи могут выбирать нужную. Другие преимущества включают поддержку скрытых титров, метаданных, управления цифровыми правами (DRM) и даже встроенных рекламных объявлений (в не слишком отдалённом будущем).
Поддерживается безопасная потоковая передача по HTTP, а также алгоритмы хеширования MD5 и SHA для аутентификации имени пользователя и пароля.
Преимущества
Как работает HLS
Подход очень похож на передачу файлов. Сегменты потокового мультимедиа через порт HTTP 80 (или порт 443 для HTTPS), который обычно уже открыт для сетевого трафика. Таким образом, контент может легко проходить через файерволы практически без участия IT-специалистов.
HLS использует контейнер транспортного потока MPEG2-TS с полуконфигурируемой продолжительностью сегмента, а также с настраиваемым размером списка воспроизведения для повторной сборки принятых сегментов на центральном сервере. Также поддерживается фрагментированный MP4.
Поскольку HLS использует технологию, основанную на TCP, метод потери и восстановления сетевых пакетов является интенсивным. Это одна из причин увеличения задержки. Хотя имеется некоторый контроль над размером сегмента мультимедиа, возможность уменьшить задержку ограничена – особенно если сервер требует загрузки среднего сегмента определённого размера.
Применение HLS
HLS по-прежнему является стандартом для потоковой передачи на мобильные устройства и планшеты. Вы также можете использовать HLS для потоковой передачи на CDN, который не поддерживает RTMP, когда низкая задержка не является обязательным требованием. Важно отметить, что RTMP уже считается устаревшим во всё более увеличивающемся количестве CDN. HLS также хорошо подходит для безопасной потоковой передачи корпоративного обучения и трансляций через локальные сети (LAN), когда низкая задержка не является обязательным требованием, а условия сети плохие (при условии, что сеть поддерживает HLS).
MPEG-DASH (Dynamic Adaptive Streaming over HTTP)
MPEG-DASH – это открытый стандарт адаптивного протокола потоковой передачи на основе HTTP, который отправляет видео и аудиоконтент по сети в виде небольших сегментов потокового мультимедиа на основе TCP, которые повторно собираются в месте назначения. Международная организация по стандартизации (ISO) и команда MPEG и MPEG-DASH спроектировали кодирование и разрешение независимо от других, что означает, что MPEG-DASH может передавать потоковое видео (и аудио) любого формата (H.264, H.265 и т. д.) и поддерживает разрешения до 4K. В остальном, MPEG-DASH функционирует почти так же, как и HLS.
Стоимость развёртывания MPEG-DASH низкая, поскольку в нём используется существующая сетевая технология на основе TCP, что является привлекательным для CDN. Но поскольку HLS использует TCP, то он работает по принципу «качество важней задержки», поэтому время задержки может быть высоким
MPEG-DASH также предназначен для адаптации к различным условиям сети. Разные версии потока отправляются с разными разрешениями и битрейтами. Зрители могут выбрать качество потока, который они хотят. Также поддерживаются несколько звуковых дорожек, а также расширенные функции, такие как скрытые титры, метаданные и управление цифровыми правами (DRM). Инфраструктура предназначена для будущих разработок, например, встроенной рекламу.
Поддерживается безопасная потоковая передача по HTTP, а также алгоритмы хеширования MD5 и SHA для аутентификации имени пользователя и пароля.
Преимущества
Как работает MPEG-DASH и его применение
MPEG-DASH работает так же, как HLS – отправляет короткие средние сегменты по HTTP (порт 80) или HTTPS (порт 443) для облегчения обхода файервола. Он использует контейнер транспортного потока MPEG2-TS с половиной настраиваемой длительности сегмента, а также настраиваемый размер списка воспроизведения для повторной сборки принятых сегментов на центральном сервере. Также поддерживается фрагментированный MP4.
Высокая задержка MPEG-DASH обусловлена главным образом потерей сетевых пакетов и методом восстановления, используемым во всех сетях на основе TCP. И хотя MPEG-DASH предлагает некоторый контроль над размером сегмента мультимедиа, возможность уменьшить задержку ограничена – особенно, если сервер требует загрузки среднего сегмента определённого размера.
MPEG-DASH лучше всего подходит для потоковой передачи на CDN, которые не поддерживают RTMP, в случаях, когда низкая задержка не является обязательным требованием. MPEG-DASH также хорошо подходит для безопасной потоковой передачи корпоративного обучения и трансляций через локальные сети (LAN), когда низкая задержка не является обязательным требованием, а условия сети плохие
Какой потоковый протокол подходит вам?
Хотя RTMP, безусловно, всё ещё является самым популярным потоковым протоколом, такие протоколы, как SRT, HLS и MPEG-DASH, бросают ему вызов. Так что они умеют такого, чего не умеет RTMP?
HLS и MPEG-DASH обеспечивают гораздо более простую и дешёвую масштабируемость, чем RTMP. Так как RTMP и обычно требует, чтобы порты были открыты вручную для прохождения через файерволы.
Если задержка или плохие условия сети не являются проблемой, то HLS или MPEG-DASH превосходит SRT. Протоколы адаптивной потоковой передачи на основе HTTP обеспечивают наилучшее возможное качество видео для зрителей с различными условиями сети и более просты в настройке, чем SRT.
Если требуется низкая задержка и вы используете потоковую передачу по сетям с непредсказуемым качеством, тогда SRT является предпочтительным протоколом потоковой передачи. SRT устанавливает свое собственное соединение для восстановления пакетов, которое намного эффективнее, чем TCP. Это позволяет SRT обеспечивать двустороннюю связь между хостом и удалёнными гостями в режиме практически реального времени. Вы также можете сами настроить задержку, чтобы приспособиться к условиям сети.
Заверните!
Многие CDN, такие, например, как Akamai, уже объявили о прекращении поддержки RTMP, как устаревшего и дорогого для развёртывания. С ростом популярности новых протоколов SRT, HLS и MPEG-DASH, RTMP вскоре уйдёт в прошлое. Вот почему мы в Epiphan Video, добавили поддержку SRT, HLS и MPEG-DASH в наше семейство систем видеопроизводства «все-в-одном» Pearl.
Теперь вы можете быть уверены, что Pearl Nano и Pearl Mini готовы к будущему потокового вещания. Семейство кодеров Pearl является одним из немногих устройств в своём ценовом диапазоне, которые сертифицированы для потоковой передачи HLS и MPEG-DASH на Akamai.