HLS vs DASH

Две доминирующие технологии стриминга HTTP-based. По функциям почти идентичны, различаются вендором, форматом манифеста, поддержкой в браузерах.

Матрица

HLSDASH
СоздательApple (2009)MPEG (ISO, 2011)
СтандартIETF RFC 8216ISO/IEC 23009-1
Манифестm3u8 (текст, простой)MPD (XML, verbose)
КонтейнерMPEG-TS или fMP4 (v7+)только fMP4
Кодекилюбые (обычно H.264/AAC)codec-agnostic
Safariнативнотолько через MSE
Chrome/FFчерез hls.jsчерез dash.js/Shaka
DRMFairPlayPlayReady, Widevine, ClearKey
Low-latencyLL-HLS (2019)LL-DASH (аналогично)
Ad insertionSCTE-35, HLS InterstitialsSCTE-35, DASH-IF Ad Insertion

CMAF — общий контейнер

CMAF (Common Media Application Format, ISO 2018) — единый fMP4-контейнер, работающий для обоих. Один энкод, два манифеста → CDN cost -50%, storage -50%.

# один энкод
video-720p/
├── init.mp4
├── seg-1.m4s
├── seg-2.m4s
└── ...

# два манифеста
├── master.m3u8   ← для Safari, iOS, Apple TV
└── master.mpd    ← для Chrome, Android, Web

Что выбрать

Кто как

ПлатформаЧто
NetflixDASH + PlayReady/Widevine
YouTubeDASH (VOD), HLS для мобилок
TwitchHLS (LL-HLS)
Apple TV+HLS + FairPlay
Kinopoisk, IviDASH + HLS-фолбэк

См. также

← на главную