HLS Streaming
HLS (HTTP Live Streaming) è un protocollo di streaming video sviluppato da Apple nel 2009 e oggi standard dominante per la distribuzione video sul web. Funziona dividendo il video in piccoli segmenti consecutivi (in genere 2-10 secondi ciascuno) e servendo ogni segmento via HTTP standard.
Come funziona
- L’encoder produce più varianti del video a diverse risoluzioni/bitrate (360p, 720p, 1080p, ecc.).
- Ogni variante è segmentata — divisa in blocchi di durata fissa.
- Una playlist master (file
.m3u8) elenca tutte le varianti e i relativi requisiti di banda. - Ogni variante ha una media playlist che elenca i segmenti in ordine.
- Il player scarica la master, sceglie una variante, scarica i segmenti in sequenza e li unisce in riproduzione continua.
- Il player si adatta — misura la velocità di download e cambia variante (su o giù) ai confini di segmento.
Perché HLS ha vinto
- Distribuzione HTTP — passa attraverso ogni firewall, ogni CDN, ogni browser. Nessun protocollo speciale richiesto.
- Bitrate adattivo — la qualità si adegua senza interruzioni alle condizioni di rete.
- Segmenti cacheabili — i segmenti immutabili si cacheano benissimo all’edge del CDN.
- Supporto nativo — ogni grande browser, piattaforma TV e OS mobile supporta HLS in modo nativo o tramite librerie (HLS.js per Chrome/Firefox).
- Compatibile con la cifratura — i segmenti possono essere cifrati con AES-128 a livello di segmento (cifratura), con chiavi servite separatamente.
Alternative
- DASH (Dynamic Adaptive Streaming over HTTP) — simile a HLS ma standardizzato da MPEG. Maggiore flessibilità di codec, minore supporto browser di base.
- WebRTC — latenza sub-secondo, peer-to-peer o via SFU. Per interazione live (videoconferenze) — non per VOD.
- Download progressivo (un MP4 servito via HTTP) — semplice, senza adattamento né controllo dello streaming. Ottimo per clip brevi, scarso per video lunghi.
Estensioni di file
.m3u8— file playlist (master o media).ts— segmento MPEG-TS (legacy).m4s— segmento MP4 frammentato (moderno, usato da HLS dal 2017)
Su AVCaption
Ogni video caricato su AVCaption viene codificato come HLS con cifratura AES-128 multi-chiave. Il player seleziona automaticamente HLS.js per i browser non Safari e HLS nativo su Safari. Vedi streaming a bitrate adattivo per i dettagli.