Streaming a bitrate adattivo (ABR)
Lo streaming a bitrate adattivo è una tecnica in cui un singolo video viene codificato simultaneamente a più risoluzioni/bitrate e il player sceglie la variante più adatta alle condizioni di rete del momento. I cambi di qualità avvengono ai confini di segmento durante la riproduzione — di solito impercettibili allo spettatore.
Il problema risolto da ABR
Prima del 2010, il video era servito come singolo file a bitrate fisso. Connessione lenta: buffering continuo. Fibra: stessa qualità bassa di tutti gli altri. In entrambi i casi una scelta sbagliata.
ABR risolve questo. L’encoder produce una ladder di varianti — tipicamente 360p / 540p / 720p / 1080p / 4K — e il player sceglie quella che corrisponde alla banda effettiva. Quando la banda cambia (per esempio entrando in un tunnel su mobile), il player scende a una variante più bassa e poi risale.
Come decide il player
- Il player scarica la playlist master con tutte le varianti e la rispettiva banda.
- Misura il tempo di download del primo segmento.
- Calcola il throughput (banda).
- Se il throughput sostenuto supera con margine il fabbisogno della variante immediatamente superiore, sale al confine di segmento successivo.
- Se il download di un segmento si blocca o il buffer scende sotto soglia, scende immediatamente.
L’algoritmo decisionale è talvolta detto logica ABR e varia per player (HLS.js, Shaka Player, ExoPlayer, AVPlayer hanno euristiche diverse).
Perché oggi è lo standard
- La banda mobile fluttua — in macchina, in ascensore, in cantina
- Rete condivisa — i conviventi avviano download durante la visione
- Variabilità all’edge CDN — gli edge hanno uplink diversi
- Protezione dall’abbandono — ogni evento di buffering = spettatore perso
ABR + cifratura
La cifratura (cifratura, AES-128) è applicata per segmento, quindi è trasparente per ABR. Il player cambia variante e decifra i segmenti della nuova variante con lo stesso meccanismo di consegna chiave. AVCaption ruota le chiavi per batch e funziona senza problemi attraverso i cambi di variante.