DASH против HLS: битва протоколов стриминга
DASH против HLS: битва протоколов стриминга. Сравниваем форматы адаптивного стриминга и сценарии применения на dcast.tv

On this page
Введение в MPEG-DASH и HLS
Большую часть адаптивного стриминга в вебе несут два протокола: MPEG-DASH (Dynamic Adaptive Streaming over HTTP) и HLS (HTTP Live Streaming). Оба доставляют сегментированное видео поверх HTTP, но различаются форматом сегментов, поддержкой кодеков и охватом платформ. Этот гид разбирает, как работает каждый, как они сравниваются по задержке и эффективности и как выбрать между ними — а также как CMAF объединяет оба в один набор сегментов.
Краткая история и назначение
MPEG-DASH был разработан группой Moving Picture Experts Group (MPEG), чтобы создать универсальный формат стриминга видео в вебе. Он спроектирован независимым от устройств, обеспечивая совместимость с широким спектром устройств и платформ. Протокол использует HTTP для доставки видеосегментов и очень гибок, поддерживая различные кодеки и контейнерные форматы. HLS был разработан Apple и изначально запущен вместе с выходом устройств iOS. Он быстро стал стандартом для стриминга live- и on-demand-видео. HLS использует HTTP для доставки видеосегментов и получил широкое распространение на разных платформах и устройствах, особенно для iOS и macOS.Форматы сегментов
Ключевой аспект и DASH, и HLS — как они работают с видеосегментами. Это меньшие части видеопотока, которые доставляются клиенту независимо, обеспечивая адаптивный битрейт.
Форматы сегментов DASH
Сегменты DASH обычно кодируются в формате ISO Base Media File Format (ISOBMFF), который также используется для файлов MP4. Этот формат обеспечивает эффективный произвольный доступ и стриминг поверх HTTP. Сегменты обычно имеют расширение `.mp4` и организованы в структуру каталогов, включающую MPD-файл.
Форматы сегментов HLS
Сегменты HLS обычно кодируются в формате `.ts` (MPEG-2 Transport Stream), хотя новые версии HLS также поддерживают сегменты `.m4s` (Fragmented MP4). Эти сегменты группируются в файл плейлиста (`.m3u8`), который сообщает клиенту информацию о доступных сегментах и их расположении.
Структура манифеста
Файл манифеста критичен и для DASH, и для HLS, так как содержит метаданные о видеоконтенте и доступных сегментах.
MPD (Media Presentation Description) для DASH
MPD-файл для DASH — это XML-документ с метаданными о видеопрезентации: информацией о видео- и аудиопотоках, URL сегментов и данными о таймингах. Вот простой пример MPD-файла:
```xml
mediaPresentationDuration="PT0H1M24S"minBufferTime="PT1.5S"
profiles="urn:mpeg:dash:profile:isoff-on-demand:2011"
type="static">
```
m3u8 для HLS
Файл m3u8 для HLS — это текстовый файл, перечисляющий сегменты и их URL. Он также может включать метаданные о потоке, например кодек и битрейт. Вот простой пример файла m3u8:
```plaintext
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.000,
segment_00000.ts
#EXTINF:10.000,
segment_00001.ts
#EXTINF:10.000,
segment_00002.ts
#EXT-X-ENDLIST
```
Поддержка кодеков
И DASH, и HLS поддерживают широкий спектр кодеков, но есть различия в совместимости и поддержке.
Распространённые кодеки
- H.264: широко поддерживается и DASH, и HLS.
- AAC: часто используется для аудио в обоих протоколах.
- VP9: поддерживается DASH, но реже встречается в HLS.
- HEVC (H.265): поддерживается DASH, но реже в HLS, особенно на старых устройствах и платформах.
Совместимость кодеков
DASH гибче в поддержке кодеков, так как справляется с более широким спектром кодеков и контейнеров. HLS исторически был строже, особенно с новыми кодеками и контейнерами, хотя это улучшилось с появлением HLSv4 и сегментов Fragmented MP4.
Адаптивный битрейт (ABR)
Адаптивный битрейт — ключевая функция и DASH, и HLS, позволяющая клиентам переключаться между уровнями качества в зависимости от условий сети.
ABR в DASH
В DASH клиент использует MPD-файл, чтобы определить доступные битрейты и URL сегментов. Затем клиент переключается между разными представлениями (битрейтами) в зависимости от условий сети. MPD-файл описывает разные представления, а клиент динамически выбирает лучшее исходя из доступной полосы.
ABR в HLS
В HLS клиент использует файл m3u8, чтобы определить доступные битрейты и URL сегментов. Клиент переключается между разными потоками (битрейтами) в зависимости от условий сети. Файл m3u8 включает список доступных потоков и их битрейтов, и клиент динамически выбирает лучший исходя из доступной полосы.
Производительность и эффективность
И DASH, и HLS спроектированы для эффективного стриминга с низкой задержкой, но есть различия в производительности.
Задержка
Сквозная задержка зависит в основном от длительности сегмента, настроек энкодера/паковщика и расширений низкой задержки (например, LL-HLS или chunked CMAF), а не от трёхбуквенной аббревиатуры. Традиционные развёртывания HLS часто использовали сегменты по 6–10 с, что добавляет задержку glass-to-glass; DASH нередко паковали с более короткими сегментами, но настроить можно и так, и так. Современный fMP4 HLS с правильной настройкой плеера может достичь задержки, сопоставимой с DASH, при совпадающих настройках.
Использование полосы
Оба протокола используют лестницы адаптивного битрейта; эффективность идёт от выбора кодека, размера сегмента и кэширования на CDN, а не от ярлыка DASH или HLS. MPEG-TS HLS несёт чуть больше mux-накладных расходов, чем fMP4; сравнивайте реальные манифесты, а не предполагайте, что один протокол всегда «эффективнее».
Распространённость и присутствие на рынке
Распространённость DASH и HLS различается на разных платформах и устройствах, а рыночные тренды постоянно меняются.
Текущие рыночные тренды
DASH набирает популярность благодаря гибкости и широкой поддержке кодеков, а HLS остаётся популярным выбором, особенно на iOS и macOS. Многие платформы и устройства поддерживают оба протокола, и выбор часто зависит от конкретных сценариев и требований.
Уровни распространения
- DASH: всё чаще принимается стриминговыми сервисами и платформами, которым нужны широкая поддержка кодеков и гибкость.
- HLS: широко распространён у Apple и других платформ, особенно для live-стриминга и on-demand-контента.
Внедрение DASH и HLS
Внедрение DASH или HLS требует внимательного учёта технических требований и конкретного сценария.
Практические шаги внедрения
Внедрение DASH
1. Подготовьте видеоконтент: закодируйте видео в несколько битрейтов.
2. Сгенерируйте сегменты: используйте инструменты вроде FFmpeg для генерации сегментов DASH.
3. Создайте MPD-файл: используйте инструмент вроде MP4Box для генерации MPD-файла.
4. Разместите контент: загрузите сегменты и MPD-файл на веб-сервер.
5. Отдавайте контент: настройте сервер на отдачу DASH-контента поверх HTTP.
Внедрение HLS
1. Подготовьте видеоконтент: закодируйте видео в несколько битрейтов.
2. Сгенерируйте сегменты: используйте инструменты вроде FFmpeg для генерации сегментов HLS.
3. Создайте файл m3u8: используйте инструмент вроде FFmpeg для генерации m3u8.
4. Разместите контент: загрузите сегменты и файл m3u8 на веб-сервер.
5. Отдавайте контент: настройте сервер на отдачу HLS-контента поверх HTTP.
Сравнительная таблица
| Характеристика | DASH | HLS |
|---|
| Поддержка кодеков | Гибкая, поддерживает H.264, VP9, HEVC и др. | Поддерживает H.264, AAC, ограниченная поддержка новых кодеков |
|---|
| Формат сегментов | Сегменты MP4 (ISOBMFF) | MPEG-2 Transport Stream (`.ts`) или Fragmented MP4 (`.m4s`) |
|---|
| Манифест | MPD-файл (XML) | Файл m3u8 (текст) |
|---|
| Задержка | Зависит от длины сегмента и паковки низкой задержки; не фиксируется одним MPD | Зависит от длины сегмента и настройки LL-HLS / fMP4; не фиксируется одним m3u8 |
|---|
| Эффективность полосы | Зависит от кодека, лестницы и контейнера; часто fMP4 | TS добавляет mux-накладные; fMP4 HLS распространён в новых стеках |
|---|
| Распространённость | Всё активнее у стриминговых сервисов | Широко распространён у Apple и других платформ |
|---|
Частые вопросы
Каковы основные различия между DASH и HLS?
DASH и HLS различаются по нескольким ключевым аспектам:
- Поддержка кодеков: DASH поддерживает более широкий спектр кодеков, включая новые вроде VP9 и HEVC.
- Формат сегментов: DASH использует сегменты MP4, а HLS — MPEG-2 Transport Stream или Fragmented MP4.
- Задержка: настраивается длительностью сегмента и плеером; любой протокол может быть с низкой или высокой задержкой.
- Эффективность полосы: определяется кодеками и паковкой; сравнивайте измеренные манифесты.
Чем различаются форматы сегментов DASH и HLS?
DASH использует сегменты MP4 (ISOBMFF), которые эффективнее для произвольного доступа и стриминга поверх HTTP. HLS использует сегменты MPEG-2 Transport Stream (`.ts`) или Fragmented MP4 (`.m4s`), которые могут требовать больше накладных расходов.
Какой кодек чаще поддерживают DASH и HLS?
И DASH, и HLS обычно поддерживают H.264 для видео и AAC для аудио. Однако DASH также поддерживает новые кодеки вроде VP9 и HEVC, а у HLS их поддержка ограничена.
Как работает адаптивный битрейт в DASH и HLS?
ABR работает, позволяя клиентам переключаться между уровнями качества в зависимости от условий сети. DASH использует MPD-файлы, а HLS — файлы m3u8 для управления разными битрейтами и URL сегментов.
У какого протокола ниже задержка, DASH или HLS?
Ни один протокол не гарантирует низкую задержку сам по себе. Используйте короткие сегменты, выровненные ключевые кадры и функции low-latency HLS или DASH там, где они поддерживаются, затем измеряйте задержку glass-to-glass на вашем энкодере, CDN и плеере.
Каковы ключевые преимущества использования dcast.tv для внедрения DASH и HLS?
dcast.tv поддерживает и DASH, и HLS, предлагая гибкие и эффективные решения видеостриминга. Он помогает упростить процесс внедрения и обеспечить совместимость на разных платформах.
Как выбрать между DASH и HLS для моих задач стриминга?
Выбирайте DASH, если нужна широкая поддержка кодеков и ниже задержка, или HLS, если нужна поддержка конкретной платформы (например, устройств Apple). Учитывайте конкретный сценарий, требования платформ и технические ограничения.
Заключение
DASH и HLS — зрелые протоколы стриминга на базе HTTP. DASH даёт более широкую гибкость кодеков, а HLS — самую широкую поддержку устройств и экосистемы Apple; задержка и эффективность полосы зависят от ваших настроек сегментов и паковки, а не от названия протокола. Выбирайте HLS для максимального охвата, DASH — для гибкости кодеков, и обращайтесь к CMAF плюс расширениям низкой задержки, когда важна задержка glass-to-glass.
Часто задаваемые вопросы
Каковы основные различия между DASH и HLS
DASH и HLS различаются по нескольким ключевым аспектам: - **Поддержка кодеков**: DASH поддерживает более широкий спектр кодеков, включая новые вроде VP9 и HEVC. - **Формат сегментов**: DASH использует сегменты MP4, а HLS — MPEG-2 Transport Stream или Fragmented MP4. - **Задержка**: ни один протокол не является изначально более быстрым; всё зависит от длительности сегмента и расширений низкой задержки вроде LL-HLS или chunked CMAF. - **Эффективность полосы**: эффективность идёт от выбора кодека, размера сегмента и кэширования на CDN, а не от ярлыка протокола.
Чем различаются форматы сегментов DASH и HLS
DASH использует сегменты MP4 (ISOBMFF), которые эффективнее для произвольного доступа и стриминга поверх HTTP. HLS использует сегменты MPEG-2 Transport Stream (`.ts`) или Fragmented MP4 (`.m4s`), которые могут требовать больше накладных расходов.
Какой кодек чаще поддерживают DASH и HLS
И DASH, и HLS обычно поддерживают H.264 для видео и AAC для аудио. Однако DASH также поддерживает новые кодеки вроде VP9 и HEVC, а у HLS их поддержка ограничена.
Как работает адаптивный битрейт в DASH и HLS
ABR работает, позволяя клиентам переключаться между уровнями качества в зависимости от условий сети. DASH использует MPD-файлы, а HLS — файлы m3u8 для управления разными битрейтами и URL сегментов.
У какого протокола ниже задержка, DASH или HLS
Ни один протокол не гарантирует низкую задержку сам по себе. Задержка зависит от длительности сегмента и расширений низкой задержки вроде LL-HLS или chunked CMAF; используйте короткие, выровненные по ключевым кадрам сегменты и измеряйте задержку glass-to-glass на вашем энкодере, CDN и плеере.
dcast Team
Professional video streaming experts helping creators succeed.
Похожие статьи
Начните свой видеобизнес сегодня
Присоединяйтесь к тысячам авторов, которые монетизируют контент с DCAST.
Начать бесплатно


