HLS vs DASH
Tous deux sont des protocoles de streaming adaptatif basés HTTP. Ils résolvent le même problème (livraison par segments avec adaptation de débit) avec des choix de conception légèrement différents.
HLS (HTTP Live Streaming)
Développé par Apple en 2009. Standardisé en RFC 8216.
- Manifeste : playlist
.m3u8en texte brut - Segments : historiquement
.ts(MPEG-TS), aujourd’hui.m4s(MP4 fragmenté) - Support natif navigateur : Safari, tous iOS, tous macOS
- Bibliothèques : HLS.js pour Chrome/Firefox/Edge
- Chiffrement : AES-128 au niveau segment (le plus courant), SAMPLE-AES pour FairPlay
- Flexibilité codec : H.264 + HEVC + AV1 avec MP4 fragmenté
DASH (Dynamic Adaptive Streaming over HTTP)
Standardisé par MPEG en 2012.
- Manifeste :
.mpdXML - Segments :
.m4s(MP4 fragmenté) - Support natif navigateur : Aucun (requiert Media Source Extensions + bibliothèque JS)
- Bibliothèques : Shaka Player, dash.js
- Chiffrement : Common Encryption (CENC) supportant Widevine + PlayReady simultanément
- Flexibilité codec : tout codec que MP4 peut transporter
Pourquoi HLS a gagné le marché
Le support natif Safari sans bibliothèque JS est le critère pratique décisif. La plupart des plateformes livrent HLS d’abord, DASH en option secondaire.
Quand DASH compte encore
- DRM studio distribuant le même contenu avec Widevine + PlayReady simultanément — DASH+CENC est le motif standard.
- Plateformes OTT matures ayant livré DASH il y a des années avec des chaînes d’outils autour.
Pour la plupart des projets modernes, HLS est le défaut le plus simple. AVCaption ne livre que HLS.