HLS vs DASH
Beide zijn HTTP-gebaseerde adaptieve streamingprotocollen. Ze lossen hetzelfde probleem op (segmentgebaseerde levering met bitrate-aanpassing) met enigszins verschillend ontwerp.
HLS (HTTP Live Streaming)
Door Apple ontwikkeld in 2009. Gestandaardiseerd als RFC 8216.
- Manifest:
.m3u8plaintext-playlist - Segmenten: historisch
.ts(MPEG-TS), nu.m4s(gefragmenteerd MP4) - Native browserondersteuning: Safari, alle iOS, alle macOS
- Library-ondersteuning: HLS.js voor Chrome/Firefox/Edge
- Encryptie: AES-128 op segmentniveau (meest gangbaar), SAMPLE-AES voor FairPlay
- Codec-flexibiliteit: H.264 + HEVC + AV1 met gefragmenteerd MP4
DASH (Dynamic Adaptive Streaming over HTTP)
Door MPEG gestandaardiseerd in 2012.
- Manifest:
.mpdXML - Segmenten:
.m4s(gefragmenteerd MP4) - Native browserondersteuning: Geen (vereist Media Source Extensions + JS-library)
- Library-ondersteuning: Shaka Player, dash.js
- Encryptie: Common Encryption (CENC) met gelijktijdige ondersteuning voor Widevine + PlayReady
- Codec-flexibiliteit: elk codec dat MP4 kan dragen
Waarom HLS de markt won
Native Safari-ondersteuning zonder JS-library is het praktische winstpunt. De meeste platforms leveren eerst HLS, DASH als secundaire optie.
Wanneer DASH nog telt
- Studio-DRM dat dezelfde inhoud uitlevert met Widevine + PlayReady tegelijk — DASH+CENC is het standaardpatroon.
- Volwassen OTT-platforms die DASH jaren geleden hebben uitgerold met toolchains eromheen.
Voor de meeste moderne projecten is HLS de eenvoudiger default. AVCaption levert uitsluitend HLS.