HLS vs DASH
Entrambi sono protocolli di streaming adattivo basati su HTTP. Risolvono lo stesso problema (distribuzione a segmenti con adattamento del bitrate) con scelte di design leggermente diverse.
HLS (HTTP Live Streaming)
Sviluppato da Apple nel 2009. Standardizzato come RFC 8216.
- Manifest: playlist
.m3u8in plaintext - Segmenti: storicamente
.ts(MPEG-TS), oggi.m4s(MP4 frammentato) - Supporto nativo browser: Safari, tutti gli iOS, tutti i macOS
- Supporto librerie: HLS.js per Chrome/Firefox/Edge
- Cifratura: AES-128 a livello di segmento (la più diffusa), SAMPLE-AES per FairPlay
- Flessibilità codec: H.264 + HEVC + AV1 con MP4 frammentato
DASH (Dynamic Adaptive Streaming over HTTP)
Standardizzato da MPEG nel 2012.
- Manifest:
.mpdXML - Segmenti:
.m4s(MP4 frammentato) - Supporto nativo browser: Nessuno (richiede Media Source Extensions + libreria JS)
- Supporto librerie: Shaka Player, dash.js
- Cifratura: Common Encryption (CENC) con supporto simultaneo di Widevine + PlayReady
- Flessibilità codec: qualunque codec MP4 possa trasportare
Perché HLS ha vinto il mercato
Il supporto nativo Safari senza libreria JS è il vantaggio pratico decisivo. La maggior parte delle piattaforme distribuisce HLS per primo, DASH come opzione secondaria.
Quando DASH conta ancora
- DRM degli studios che distribuiscono lo stesso contenuto con Widevine + PlayReady contemporaneamente — DASH+CENC è il pattern standard.
- Piattaforme OTT mature che hanno distribuito DASH anni fa con toolchain costruite attorno.
Per la maggior parte dei progetti moderni HLS è il default più semplice. AVCaption distribuisce esclusivamente HLS.