Indice dei contenuti dell'articolo:
Questo blog si concentra su HLS, o HTTP live streaming, che è uno dei protocolli più popolari utilizzati oggi per lo streaming di video. Il formato HLS è un protocollo di streaming video live a bitrate adattivo. Originariamente sviluppato da Apple per l’utilizzo su dispositivi iOS, Mac OS e Apple TV, lo streaming HLS è diventato il protocollo video live più utilizzato.
Questo articolo esaminerà i pro e i contro dello streaming live HTTP. Lo confronteremo anche con alcuni formati alternativi. Esamineremo anche la storia del formato HLS e chiederemo da dove provenga e perché.
Come funziona HTTP Live Streaming (HLS).
Il video HLS viene fornito tramite il protocollo di comunicazione web HTML5, il più recente standard online per i contenuti web. I lettori video HTML5 supportano i video online forniti tramite una varietà di protocolli. Questi includono HTTP Live Streaming (HLS) e MPEG-DASH.
Puoi pensare al protocollo di streaming come al metodo che definisce quale formato utilizza il video, come viene compresso, la dimensione dei blocchi inviati e così via.
HLS è stato sviluppato per fornire un’alternativa al video Flash. Tecnicamente parlando, utilizza la compressione video H.264, AAC o MP3 per la compressione audio e trasmette i flussi utilizzando il formato contenitore MPEG-TS.
Lo streaming video tramite HLS funziona tagliando un flusso video MP4 in brevi blocchi video di circa 10 secondi. Gli stream vengono descritti utilizzando le playlist M3U8 create dal server HTTP. Questa playlist, chiamata anche file manifest, indicizza i blocchi video.
Vantaggi dell’utilizzo del protocollo HLS
Negli ultimi anni, il formato HLS è diventato un protocollo standard per i video web, e con buone ragioni. L’acquisizione di HLS è piuttosto semplice da configurare, è gratuita ed è supportata su un’ampia gamma di dispositivi. Diamo un’occhiata ad alcuni dei vantaggi dell’utilizzo del protocollo HLMS per lo streaming video.
Vantaggio n. 1: Consegna su tutti i dispositivi
Innanzitutto, HTTP Live Streaming supporta i video su quasi tutti i dispositivi. Sebbene sia stato originariamente creato per l’utilizzo su dispositivi Safari e iOS, il formato HLS è ora supportato su tutti i browser Web moderni: dispositivi mobili, desktop, tablet e così via.
Se tu e i tuoi spettatori accedete ai contenuti su uno smartphone, tablet, desktop o laptop, smart TV, set-top box o qualsiasi altro dispositivo, il video HLS verrà riprodotto. La maggior parte dei browser Web supporta anche l’alternativa principale, MPEG-DASH, ma iOS e Safari no. Questo è un grande vantaggio. Per questo motivo, HLS rimane lo standard de facto.
Utilizzando HTML5, gli sviluppatori non si preoccupano più di quale browser o quale estensione utilizzano i loro visitatori.
Vantaggio n.2: Qualità eccellente
Il formato video HLS utilizza un metodo chiamato Adaptive Bitrate Streaming. Questo metodo misura la velocità di Internet disponibile per ciascun visualizzatore di un determinato video. Quindi, la qualità del video che vengono offerti viene regolata in modo dinamico.
Ad esempio, potresti iniziare a guardare un video a casa, dove disponi di una connessione Wi-Fi veloce. Quindi, puoi uscire di casa e salire in macchina con un amico e continuare a guardare il video con una connessione mobile. Questa connessione Internet potrebbe essere più lenta. Potresti anche attraversare aree con disponibilità di larghezza di banda limitata. Anche una connessione Internet domestica o di lavoro dedicata può avere una variazione significativa della velocità di Internet.
Le tecnologie di streaming adattivo condividono diversi aspetti critici. Innanzitutto, producono più file dallo stesso file sorgente da distribuire agli spettatori che guardano su diversi dispositivi alimentati tramite diverse velocità di connessione. In secondo luogo, distribuiscono i file in modo adattivo, modificando il flusso fornito per adattarsi ai cambiamenti nel throughput effettivo e ai cicli della CPU disponibili sulla stazione di riproduzione.
In terzo luogo, funzionano tutti in modo trasparente per l’utente, in modo che lo spettatore faccia clic su un pulsante (piuttosto che su più pulsanti come con l’esperienza del trailer del film in cui gli utenti selezionano in anticipo il bitrate e la qualità del video) e tutto il cambio di flusso avviene dietro le quinte. Lo spettatore potrebbe notare un leggero cambiamento di qualità quando i flussi cambiano, ma non è richiesta alcuna azione da parte sua.
Tutte le tecnologie condividono anche caratteristiche operative simili, sebbene vi siano alcune differenze fondamentali. Ad esempio, tutte le tecnologie di streaming adattivo monitorano fattori come lo stato del buffer video per valutare il throughput effettivo e l’utilizzo della CPU e i frame persi per valutare la potenza di elaborazione disponibile sulla stazione di riproduzione. Queste informazioni vengono utilizzate per determinare quando cambiare flusso.
Ad esempio, se il buffer video è pieno e l’utilizzo della CPU è basso, la tecnologia di streaming adattivo potrebbe passare a un flusso di qualità superiore per migliorare l’esperienza visiva. Se il buffer scende al di sotto di determinati livelli o l’utilizzo della CPU supera determinate soglie, la tecnologia potrebbe passare a un flusso di qualità inferiore.
La principale differenza di implementazione tra le tecnologie è il coinvolgimento di un server di streaming. Nello specifico, alcune tecnologie richiedono un server di streaming e una comunicazione costante tra server e lettore. Se è necessario un cambio di flusso, il server lo implementa inviando un flusso diverso al visualizzatore.
Altre tecnologie funzionano senza un server di streaming. I diversi flussi di qualità vengono inviati a indirizzi diversi su un server Web o più server Web. Il lettore monitora l’euristica operativa come l’utilizzo della CPU e lo stato del buffer, decide quando è necessario un cambio di flusso e inizia a recuperare i dati da un flusso diverso quando appropriato.
In ogni caso, le tecnologie di streaming adattivo consentono ai produttori di fornire flussi di qualità eccezionale nella fascia alta dello spettro di larghezza di banda/potenza perché servono anche la fascia bassa. Senza lo streaming adattivo, la maggior parte dei produttori distribuirebbe un singolo file di qualità media che appare al di sotto della media nella configurazione di visualizzazione ottimale oppure creerebbe più file e costringerebbe lo spettatore a selezionare la configurazione desiderata.
Il video fornito utilizzando il formato HLS, se configurato correttamente, ti fornirà in modo dinamico la migliore qualità video possibile riducendo al minimo il buffering e il ritardo. Questo approccio porta a un’esperienza utente superiore. Il video tenterà di continuare la riproduzione il più possibile. La qualità aumenterà fintanto che la tua connessione Internet sarà abbastanza veloce da gestire il carico.
Vantaggio n.3: Costo efficiente
Un altro grande vantaggio del formato HLS è il suo costo inferiore. Come abbiamo detto, il formato è supportato da quasi tutti i dispositivi tramite HTML5 e Media Source Extensions. Non è necessario utilizzare un dispositivo specifico per guardare il contenuto. I server Web standard possono gestire la consegna HLS senza problemi (a seconda del carico e di altri fattori).
Ad esempio, il webserver NGINX che utilizziamo in azienda supporta nativamente il supporto HLS anche nella versione Free ed Open Source.
Contro dell’utilizzo del protocollo HTTP Live Streaming
Nessun protocollo o tecnologia è perfetto e HTTP Live Streaming non è diverso. Ci sono alcuni svantaggi nell’usare il formato HLS. Diamo un’occhiata a uno dei problemi più diffusi: la latenza.
Latenza
La latenza si riferisce al tempo trascorso tra il momento in cui si verifica un evento nel mondo reale e il momento in cui gli spettatori possono vederlo. In sostanza, è il tempo necessario affinché un video venga registrato da una telecamera, elaborato da un codificatore HLS, trasmesso su Internet, distribuito ai server “periferici” e decodificato per la visualizzazione.
Tieni presente che la latenza non tiene conto dei rallentamenti dovuti alla velocità di Internet e ai colli di bottiglia; queste sono questioni in gran parte separate.
HLS è stato progettato per massimizzare la qualità, non per ridurre al minimo la latenza assoluta. Il suo intervallo di fotogrammi chiave, la dimensione del pacchetto e il requisito del buffer di riproduzione semplicemente non sono adatti per lo streaming live super rapido. Pertanto, di solito aggiunge un ritardo di 20-60 secondi al tuo stream. Queste piattaforme software di live streaming offrono soluzioni integrate a bassa latenza e quelle sono quelle da considerare.
Questo di solito è un problema solo per un piccolo sottoinsieme di streamer dal vivo, in particolare videogiocatori e appassionati di sport. In queste situazioni, la velocità è importante. Tuttavia, la maggior parte degli utenti può facilmente ignorare la piccola latenza dell’hosting di un flusso HLS poiché non avrà alcun impatto sulla soddisfazione o sull’esperienza degli spettatori. Per quasi tutti gli spettatori, un video di alta qualità che può essere guardato in qualsiasi momento, su qualsiasi dispositivo, è più importante della latenza.
Soluzioni al problema della latenza
Il video Flash ha fornito streaming live a bassa latenza. Ma con il declino di Flash, i video su Internet sono in un periodo di transizione. Non ci sono ancora soluzioni fantastiche al problema della latenza HLS. Ma molte aziende diverse ci stanno lavorando, incluso il fornitore di CDN di alto livello Akamai . Le sostituzioni per HLS sono in lavorazione (come MP4 frammentato), ma i dispositivi non sono ancora pronti per riprodurle. Il prossimo turno potrebbe essere ancora tra qualche anno.