Adaptive Bitrate (ABR) è una tecnologia di streaming che modifica dinamicamente la qualità del video in base alla larghezza di banda del canale dell'utente. A differenza del download progressivo, ABR divide il video in piccoli segmenti di 2–10 secondi e passa dall'uno all'altro al volo. Secondo il Bitmovin Video Developer Report (2025), l'86% dei servizi di streaming utilizza ABR per garantire una riproduzione fluida sui dispositivi mobili.
Punti chiave
Adaptive Bitrate (ABR) è un metodo di streaming di contenuti multimediali in cui un file video viene codificato in più varianti con diversi bitrate e risoluzioni, e il lettore seleziona automaticamente la variante appropriata in tempo reale. L'utente ottiene la massima qualità possibile senza buffering in base alla propria velocità Internet corrente.
A differenza del download progressivo tradizionale, ABR non richiede il caricamento dell'intero file — il lettore richiede segmenti brevi alla qualità desiderata e può passare a un altro bitrate tra i segmenti. Ciò rende la tecnologia indispensabile per le applicazioni mobili, dove la velocità della rete cambia costantemente.
La tecnologia di streaming adattivo è stata implementata commercialmente per la prima volta da Move Networks nel 2006 per la trasmissione del canale ABC. Nel 2009, Apple ha presentato HTTP Live Streaming (HLS), che è diventato il primo standard ABR ampiamente adottato basato su HTTP e domina ancora l'ecosistema iOS.
Nel 2012, MPEG ha rilasciato lo standard MPEG-DASH (Dynamic Adaptive Streaming over HTTP) come formato ABR universale non legato a un fornitore specifico. DASH è supportato da tutte le principali piattaforme ed è l'unico standard ABR adottato dall'ISO.
Il processo di streaming ABR inizia nella fase di preparazione del contenuto: il video sorgente viene codificato in più varianti con diversi bitrate — ad esempio, 144p, 360p, 720p, 1080p e 4K. Ogni variante viene suddivisa in segmenti di uguale durata, tipicamente 2, 4, 6 o 10 secondi.
Sul server viene creato un file manifesto che descrive le varianti disponibili, il loro bitrate, risoluzione, codec e collegamenti ai segmenti. Il lettore scarica il manifesto, lo analizza e inizia la riproduzione al bitrate più basso per un avvio rapido.
<!-- MPEG-DASH MPD manifest -->
<MPD profiles="urn:mpeg:dash:profile:isoff-live:2011">
<Period>
<AdaptationSet mimeType="video/mp4">
<Representation id="720p" bandwidth="2800000"
width="1280" height="720">
<SegmentTemplate duration="4"
media="seg_$Number$.m4s"/>
</Representation>
</AdaptationSet>
</Period>
</MPD>
Durante la riproduzione, l'algoritmo ABR lato client monitora costantemente le condizioni della rete e lo stato del buffer. Se la larghezza di banda diminuisce, il lettore richiede i segmenti successivi a un bitrate inferiore per evitare il buffering. Quando la rete migliora, il bitrate aumenta.
La commutazione tra i bitrate avviene ai confini dei segmenti, rendendo i cambiamenti di qualità quasi impercettibili per l'utente. I lettori moderni possono sincronizzare i fotogrammi chiave tra diverse varianti in modo che la commutazione avvenga senza artefatti visivi.
Tre protocolli ABR principali dominano il mercato dello streaming video: HLS di Apple, MPEG-DASH come standard aperto e Smooth Streaming di Microsoft. Ogni protocollo definisce il formato del manifesto, il metodo di segmentazione e il meccanismo di crittografia.
| Protocollo | Sviluppatore | Manifesto | Segmenti | Crittografia |
|---|---|---|---|---|
| HLS | Apple | .m3u8 (playlist M3U) | .ts o .fmp4 | AES-128, SAMPLE-AES |
| MPEG-DASH | ISO/MPEG | .mpd (XML) | .m4s o .webm | CENC (Common Encryption) |
| Smooth Streaming | Microsoft | .ismc (XML, IIS) | .ismv / .isma | PlayReady (AES-128 CT) |
HLS è il protocollo ABR più diffuso, integrato in iOS, tvOS e Safari su macOS. Il formato del manifesto si basa su playlist M3U estese, dove la playlist principale contiene collegamenti a varianti con diversi bitrate e risoluzioni.
Ogni variante fa riferimento alla propria playlist multimediale con un elenco di segmenti. HLS supporta le trasmissioni in diretta tramite un meccanismo a finestra scorrevole, in cui i segmenti vecchi vengono rimossi e quelli nuovi vengono aggiunti man mano che arrivano.
MPEG-DASH è l'unico standard ABR adottato come ISO/IEC 23009-1 nel 2012. A differenza di HLS, DASH utilizza un manifesto XML (MPD — Media Presentation Description) e non è legato a un formato di contenitore specifico — supporta fMP4, WebM e altri.
DASH offre una segmentazione flessibile: i segmenti possono avere durate diverse all'interno dello stesso flusso, ottimizzando il compromesso tra latenza e overhead delle richieste HTTP. Per le trasmissioni in diretta, DASH supporta i modelli SegmentTemplate.
Secondo i test di Bitmovin (2025), HLS e DASH mostrano prestazioni comparabili in termini di tempo di avvio e frequenza di commutazione del bitrate. HLS offre una latenza inferiore su iOS grazie al supporto hardware, mentre DASH è preferito su Android per la configurazione più flessibile degli algoritmi ABR.
Il cuore di ABR è l'algoritmo di selezione del bitrate che determina quale variante richiedere successivamente. Esistono tre famiglie principali di algoritmi: basati su throughput, basati su buffer e ibridi. Ogni approccio ha i suoi punti di forza e limitazioni.
Gli algoritmi basati su throughput stimano la larghezza di banda della rete in base alla velocità di download dei segmenti precedenti. L'algoritmo seleziona il bitrate massimo che non supera l'80–90% del throughput misurato, lasciando un margine per le fluttuazioni.
Lo svantaggio di questo approccio è la sua sensibilità ai picchi di velocità di breve durata. Se la rete cala bruscamente durante il download di un segmento, la stima del throughput diventa troppo bassa, riducendo inutilmente la qualità.
Gli algoritmi basati su buffer prendono decisioni in base all'occupazione del buffer del lettore. Se il buffer è pieno per oltre il 70%, l'algoritmo aumenta il bitrate; se il buffer scende sotto il 20%, riduce drasticamente la qualità per evitare il buffering.
Il vantaggio principale è nessuna falsa riduzione durante i cali di rete di breve durata, poiché il buffer attenua le fluttuazioni. Lo svantaggio è la lenta reazione ai cambiamenti sostenuti della larghezza di banda.
I lettori moderni come ExoPlayer e AVPlayer utilizzano algoritmi ibridi che combinano la stima del throughput e lo stato del buffer. ExoPlayer utilizza l'algoritmo ABR predefinito DefaultTrackSelector, che considera entrambi i parametri.
Nel 2024–2025, vengono attivamente implementati algoritmi basati su ML che prevedono i futuri cambiamenti della rete sulla base di dati storici. Netflix, YouTube e Twitch utilizzano i propri modelli di apprendimento automatico per ottimizzare la selezione del bitrate, riducendo il numero di commutazioni del 30–40%.
Le applicazioni mobili impongono esigenze particolari ad ABR a causa dell'instabilità delle reti cellulari (4G/LTE, 5G) e della potenza di calcolo limitata dei dispositivi. Il lettore deve adattarsi rapidamente ai cambiamenti della rete, riducendo al minimo il consumo energetico e l'utilizzo dei dati.
Secondo OpenSignal (2025), la velocità media del 4G nelle aree urbane varia da 5 a 50 Mbps, e in movimento può scendere a 1 Mbps. Gli algoritmi ABR devono commutare tra bitrate in 1–2 segmenti per evitare il buffering quando si entra in un tunnel o in un ascensore.
val trackSelector = DefaultTrackSelector(context).apply {
setParameters(buildUponParameters {
setMaxVideoSizeSd()
setAllowVideoMixedMimeTypeAdaptiveness(true)
setPreferredVideoRoleFlags(
roleFlags(C.ROLE_FLAG_DESCRIBES_VIDEO_AND_AUDIO)
)
})
}
val adaptiveTrackSelectionFactory =
AdaptiveTrackSelection.Factory()
val player = ExoPlayer.Builder(context)
.setTrackSelector(trackSelector)
.setMediaSourceFactory(
DashMediaSource.Factory(dataSourceFactory)
)
.build()
Per le applicazioni mobili, il caricamento iniziale rapido (tempo al primo fotograma inferiore a 2 secondi) è fondamentale. Si consiglia di avviare la riproduzione al bitrate più basso disponibile e poi aumentare la qualità man mano che il buffer si riempie — la strategia start-low-and-rise.
Il consumo energetico è anche importante: la decodifica accelerata via hardware dovrebbe essere utilizzata per tutti i bitrate. La decodifica software di bitrate elevati (1080p e superiori) su dispositivi obsoleti può causare surriscaldamento e throttling.
Metriche chiave della qualità ABR: numero di commutazioni di bitrate, tempo al primo fotograma (TTFF) e rapporto di commutazione rispetto al tempo di visione totale. L'indice QoE (Quality of Experience) viene calcolato come somma ponderata di bitrate, penalità di commutazione e penalità di buffering.
Per il monitoraggio ABR, si consiglia di raccogliere analisi dal lettore: bitrate corrente, dimensione del buffer, larghezza di banda, numero e tipi di commutazioni. Questi dati aiutano i fornitori di contenuti a ottimizzare il set di bitrate disponibili e a configurare la segmentazione per il loro pubblico specifico.
Domande frequenti
Adaptive Bitrate (ABR) è una tecnologia di streaming che modifica dinamicamente la qualità del video in base alle condizioni della rete. Il lettore divide il video in segmenti e seleziona il bitrate ottimale per ciascuno, garantendo una riproduzione fluida senza buffering sui dispositivi mobili.
HLS è un protocollo Apple che utilizza playlist M3U e flussi di trasporto (.ts). MPEG-DASH è uno standard ISO aperto con un manifesto XML (.mpd) e formati di segmento flessibili. HLS funziona meglio su iOS, DASH su Android e sul web.
ABR migliora la qualità percepita eliminando il buffering: il video può temporaneamente ridurre la risoluzione quando la rete si degrada, ma non si ferma. Gli utenti preferiscono un video fluido in 720p a un 4K a scatti con buffering costante.
ExoPlayer utilizza un algoritmo ibrido DefaultTrackSelector che considera la larghezza di banda della rete e l'occupazione del buffer. Sono disponibili anche strategie basate su throughput e su buffer con personalizzazione tramite AdaptiveTrackSelection.Factory.
La durata dei segmenti determina la frequenza di adattamento: i segmenti brevi (2 secondi) reagiscono più velocemente ai cambiamenti di rete ma generano più richieste HTTP. I segmenti di 4–6 secondi sono ottimali per i dispositivi mobili, bilanciando velocità di adattamento e overhead.
Riepilogo
Svilupperemo un'applicazione mobile chiavi in mano
IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.
Leggi anche