HLS vs DASH
Beides sind HTTP-basierte Adaptive-Streaming-Protokolle. Sie lösen dasselbe Problem (segmentbasierte Auslieferung mit Bitratenanpassung) mit leicht unterschiedlichem Design.
HLS (HTTP Live Streaming)
Von Apple 2009 entwickelt. Standardisiert als RFC 8216.
- Manifest:
.m3u8Klartext-Playlist - Segmente: historisch
.ts(MPEG-TS), heute.m4s(fragmentiertes MP4) - Native Browser-Unterstützung: Safari, alle iOS, alle macOS
- Bibliotheken: HLS.js für Chrome/Firefox/Edge
- Verschlüsselung: AES-128 auf Segmentebene (am verbreitetsten), SAMPLE-AES für FairPlay
- Codec-Flexibilität: H.264 + HEVC + AV1 mit fragmentiertem MP4
DASH (Dynamic Adaptive Streaming over HTTP)
Von MPEG 2012 standardisiert.
- Manifest:
.mpdXML - Segmente:
.m4s(fragmentiertes MP4) - Native Browser-Unterstützung: Keine (benötigt Media Source Extensions + JS-Bibliothek)
- Bibliotheken: Shaka Player, dash.js
- Verschlüsselung: Common Encryption (CENC) mit gleichzeitiger Unterstützung von Widevine + PlayReady
- Codec-Flexibilität: Jeder Codec, den MP4 transportiert
Warum HLS den Markt gewann
Native Safari-Unterstützung ohne JS-Bibliothek ist der praktische Vorteil. Die meisten Plattformen liefern zuerst HLS, DASH als Sekundäroption.
Wann DASH noch zählt
- Studio-DRM mit gleichzeitiger Auslieferung über Widevine + PlayReady — DASH+CENC ist das Standardmuster.
- Gereifte OTT-Plattformen, die DASH vor Jahren ausgeliefert haben und Toolchains darum gebaut haben.
Für die meisten modernen Projekte ist HLS der einfachere Default. AVCaption liefert ausschließlich HLS aus.