HLS e DASH: come funzionano davvero i protocolli di streaming
Prima dello streaming, guardare un video online significava una sola cosa: scaricare prima l’intero file e poi riprodurlo. Un video da 500 MB doveva arrivare completamente sul dispositivo, anche se volevi guardare solo i primi 30 secondi. I protocolli di streaming risolvono proprio questo problema: suddividono il video in piccoli frammenti e lo riproducono mentre il resto è ancora in fase di download.
Segmentazione: la base dello streaming
Prendiamo HLS (HTTP Live Streaming, creato da Apple), il protocollo più comune: il server suddivide un video completo in tanti piccoli file, chiamati segmenti, che durano in genere da 2 a 10 secondi e sono confezionati in MPEG-TS o fMP4. Genera inoltre un file playlist (.m3u8) che registra l’ordine e gli indirizzi dei segmenti. Il lettore recupera prima la playlist, poi scarica i segmenti in base alle necessità: finito uno, passa al successivo, quasi senza attese.
Bitrate adattivo: perché la riproduzione non si blocca quando la rete peggiora
HLS e DASH (Dynamic Adaptive Streaming over HTTP, promosso da Microsoft e altri) preparano più serie di segmenti per lo stesso video, con risoluzioni e bitrate diversi: per esempio una serie in 1080p, una in 720p e una in 480p, tutte elencate in una playlist principale. Il lettore controlla in tempo reale la velocità di download e il livello del buffer: passa a un bitrate più alto quando la rete è buona e lo riduce quando peggiora, mantenendo continua la riproduzione. È lo streaming a bitrate adattivo (ABR), ed è il motivo per cui i video diventano automaticamente sfocati quando sei in metropolitana.
Perché scaricare un link m3u8 spesso non funziona
Scaricando direttamente un URL .m3u8 si ottengono pochi KB di testo: la playlist, non il video. Per salvare davvero il video, uno strumento deve analizzare la playlist, scaricare ogni segmento e riunirli nell’ordine corretto. Per questo molti downloader non supportano affatto i video HLS oppure richiedono un passaggio dedicato per unire i segmenti. TakeVid integra il rilevamento dei segmenti e l’unione automatica, quindi il file scaricato è completo e pronto per la riproduzione.
- HLS: creato da Apple, usa playlist .m3u8, è supportato nativamente da iOS e Safari e gestisce sia le dirette sia i contenuti on demand
- DASH: uno standard aperto con manifest .mpd, utilizzato su vasta scala da YouTube, Netflix e altre piattaforme
- Entrambi usano il normale protocollo HTTP, si integrano bene con le CDN e dominano lo streaming di oggi