Cos'è HTTP Live Streaming? | HLS Streaming

HTTP Live Streaming (HLS) è un protocollo molto diffuso per lo streaming di video che può girare su quasi ogni server ed è supportato dalla maggior parte dei dispositivi. HLS consente ai dispositivi client di adattarsi in tutta semplicità alle condizioni della rete in continuo cambiamento, diminuendo o aumentando la qualità dello stream.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Definire HTTP Live Streaming (HLS)
  • Scoprire come funziona HLS
  • Esaminare i vantaggi dello streaming ABR

Copia link dell'articolo

Cos'è lo HTTP Live Streaming (HLS)?

HTTP Live Streaming (HLS) è uno dei protocolli di streaming video più usati. Anche se il nome è HTTP streaming "dal vivo", si usa sia per lo streaming on-demand che lo streaming live. HLS suddivide i file video in file HTTP più piccoli e scaricabili, e li consegna utilizzando il protocollo HTTP. I dispositivi client caricano questi file HTTP e poi li riproducono come video.

Un vantaggio di HLS è che tutti i dispositivi connessi a Internet supportano HTTP, rendendolo più semplice da implementare rispetto ai protocolli di streaming che richiedono l'uso di server specializzati. Un altro vantaggio è che un flusso HLS può aumentare o diminuire la qualità video a seconda delle condizioni della rete senza interrompere la riproduzione. Questo è il motivo per cui la qualità del video può migliorare o peggiorare nel mezzo di un video mentre un utente lo sta guardando. Questa funzione è nota come "distribuzione video bitrate adattiva" o "streaming con bitrate adattivo," e senza di esso, le condizioni di rete lente possono interrompere del tutto la riproduzione di un video.

HLS è stato sviluppato da Apple per essere usato con i propri prodotti, ma ora viene impiegato da una vasta gamma di dispositivi.

Cos'è lo streaming?

Lo streaming è un modo di offrire media audiovisivi agli utenti attraverso Internet. Funziona inviando il file media al dispositivo dell'utente un poco alla volta e di continuo, invece che in un unico blocco. Il file media originale è memorizzato in remoto o, nel caso dello streaming dal vivo, viene creato in tempo reale con una telecamera o un microfono. In tal modo il video o l'audio possono essere riprodotti senza che il dispositivo dell'utente debba prima scaricare l'intero file.

Cos'è HTTP?

HTTP è un protocollo di livello applicativo che serve a trasferire le informazioni tra dispositivi connessi a una rete. Tutti i siti web e le applicazioni che danno accesso agli utenti regolari funzionano su HTTP. I trasferimenti di dati su HTTP sono normalmente basati su richieste e risposte. Quasi tutti i messaggi HTTP sono una richiesta o una risposta a una richiesta.

Nello streaming su HTTP non si applica la classica sequenza di richiesta-risposta. La connessione tra client e server resta aperta per tutta la durata dello stream, e il server invia dati video al client così che questi non debba richiedere ogni segmento dei dati video.

Come funziona l'HSL?

Server: uno stream HLS ha origine in un server in cui è archiviato il file media (nello streaming on-demand) o dove è creato lo stream stesso (nello streaming in diretta). Poiché l'HLS è basato su HTTP, qualsiasi server Web regolare può dare origine allo stream.

Sul server hanno luogo due processi principali:

  1. Codifica: i dati del video vengono riformattati così che ogni dispositivo possa riconoscerli e interpretarli. HLS deve usare la codifica H.264 o H.265.
  2. Segmentazione: il video viene suddiviso in segmenti ciascuno di qualche secondo di durata. La lunghezza dei segmenti può variare, sebbene la lunghezza predefinita sia di 6 secondi (fino al 2016 era di 10 secondi).
    • Oltre a suddividere lo stream in segmenti, HLS crea un file di indice dei segmenti video per registrarne l'ordine.
    • Inoltre, HLS crea anche diversi doppioni dei segmenti a livelli diversi di qualità: 480p, 720p, 1080p e così via.

Distribuzione: i segmenti video codificati sono inviati ai dispositivi client attraverso Internet, quando questi richiedono lo stream. In genere, c'è una content delivery network (CDN) che aiuta a distribuire lo stream in aree geografiche diverse. La CDN esegue anche la memorizzazione nella cache dello stream per inviarlo ai client ancor più rapidamente.

Dispositivo client: il dispositivo client è quello che riceve lo stream e riproduce il video, ad esempio lo smartphone o il laptop di un utente. Il dispositivo client utilizza il file di indice come riferimento per assemblare il video nell'ordine giusto, e passa da qualità superiore a inferiore (e viceversa) secondo necessità.

Cos'è lo streaming adaptive bitrate nell'HLS?

Uno dei vantaggi dell'HLS rispetto ad altri protocolli di streaming è lo streaming adaptive bitrate o ABR. Questo si riferisce alla capacità di regolare la qualità del video nel mezzo di uno stream per adattarsi ai cambiamenti nelle condizioni della rete. Questa capacità consente ai video di continuare a essere riprodotti anche quando le condizioni di rete peggiorano; viceversa, massimizza la qualità del video al livello più elevato supportato dalla rete.

Se la rete rallenta, il riproduttore video dell'utente lo rileva e lo streaming ABR abbassa la qualità dello stream, così da non interrompere la riproduzione del video. Se aumenta la disponibilità di più larghezza di banda, lo streaming ABR migliora la qualità del flusso dati.

Lo streaming con bitrate adattivo è possibile perché HLS crea diversi flussi segmentati duplicati a diversi livelli di qualità durante il processo di segmentazione. Il lettore video dell'utente può passare da uno di questi flussi a un altro durante la riproduzione del video.

L'HLS usa TCP o UDP come protocollo di trasporto?

TCP e UDP sono protocolli di trasporto, ovvero hanno la responsabilità di consegnare i contenuti attraverso Internet. TCP tende a consegnare i dati in modo più affidabile rispetto a UDP, ma quest'ultimo è molto più veloce, anche se è possibile che dei dati vengano persi nel tragitto.

Poiché UDP è più veloce, alcuni protocolli di streaming utilizzano UDP invece di TCP. HLS, tuttavia, utilizza TCP per diversi motivi:

  1. HLS funziona su HTTP, e il protocollo HTTP è progettato per essere usato con TCP (con alcune eccezioni).
  2. L'Internet moderno è più affidabile ed efficiente rispetto a quando è stato sviluppato lo streaming. In molti punti del mondo, oggi la connettività utente è migliorata enormemente, specialmente per le connessioni per dispositivi mobili. Di conseguenza, gli utenti hanno banda a sufficienza per supportare la delivery di ogni singolo frame video.
  3. Lo streaming ABR aiuta a compensare la consegna di dati potenzialmente più lenta da parte di TCP.
  4. Lo streaming HLS non deve essere in "tempo reale", come nel caso delle connessioni per le videoconferenze. Qualche secondo di ritardo aggiuntivo non impatta negativamente sull'esperienza dell'utente tanto quanto l'assenza di diversi frame video.

Quali altri protocolli sono comunemente usati per lo streaming?

Esistono diversi protocolli simili a HLS, come MPEG-DASH e HDS, i quali funzionano anch'essi su HTTP e offrono lo streaming con bitrate adattivo. Adobe Flash, che funziona sul protocollo RTMP, un tempo era la tecnologia principale utilizzata per lo streaming di video, tuttavia molti browser non supportano più Flash. RTMP è ancora in uso, anche se il supporto è in calo.

Cloudflare supporta HTTP Live Streaming?

Cloudflare supporta l'HLS sia per lo streaming live che on-demand. Cloudflare Stream integra l'archiviazione e la codifica di video con un lettore personalizzabile insieme alla rete veloce, sicura e affidabile di Cloudflare, che si estende su 200 città in oltre 100 paesi. Questo consente agli utenti in tutto il mondo di ricevere stream HLS ad alta qualità e velocemente. Ulteriori informazioni su Cloudflare Stream.