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.

Share facebook icon linkedin icon twitter icon email icon

HTTP Live Streaming

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

Cos'è 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.

Uno dei vantaggi dell'HLS è che tutti i dispositivi connessi a Internet supportano HTTP, rendendo più facile implementarlo rispetto ai protocolli di streaming che richiedono l'uso di server specializzati. Un altro vantaggio è che uno stream HLS può aumentare o diminuire la qualità del video a seconda delle condizioni della rete, senza interrompere la riproduzione. È questo il motivo per cui la qualità del video migliora o peggiora nel mezzo di una riproduzione. Questa funzione si chiama "adaptive bitrate video delivery" o "adaptive bitrate streaming" cioè bitrate adattivo, e senza di esso, una rete lenta può bloccare completamente la riproduzione di un video.

HLS è stato sviluppato da Apple da usare nei suoi prodotti, ma ora viene usato da una vasta gamma di dispositivi.

Cos'è lo streaming?

Lo streaming è un modo di offrire media audiovisivi agli utenti attraverso Internet. Il modo in cui funziona è di inviare costantemente il file media al dispositivo dell'utente un poco alla volta, invece che tutto insieme. Il file media originale è archiviato remotamente o, nel caso dello streaming dal vivo, viene creato in tempo reale con una telecamera o un microfono remoti. 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 per 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 c'è 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 il client 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, anche se la lunghezza predefinita è 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 rate. Questa capacità consente ai video di continuare a essere riprodotto anche quando le condizioni di rete peggiorano; viceversa, massimizza la qualità del video al livello più elevato supportato dalla rete.

Se la rete si rallenta, il lettore video dell'utente lo rileva e lo streaming ABR abbassa la qualità dello stream così che il video non si interrompa. Se si rende disponibile più banda in rete, lo streaming ABR migliora la qualità dello stream.

Lo streaming ABR è possibile perché HLS crea molteplici stream segmentati e doppioni a diversi livelli di qualità durante il processo di segmentazione. Il lettore video dell'utente può quindi passare senza interruzioni da uno stream all'altro nella riproduzione del video.

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

TCP e UDP sono protocolli di trasporto, cioè 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, molti protocolli di streaming usano UDP invece di TCP. HLS però usa TCP, per diversi motivi:

  1. HLS funziona su HTTP e il protocollo HTTP è progettato per essere usato con TCP (con alcune eccezioni).
  2. La moderna Internet è più affidabile e più efficiente rispetto a quando fu 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 consegna di ogni 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 ha un impatto molto forte sull'esperienza utente rispetto quanto ne avrebbero dei frame video mancanti.

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 ABR. 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 usato ampiamente.

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 95 paesi. Questo consente agli utenti in tutto il mondo di ricevere stream HLS ad alta qualità e velocemente. Ulteriori informazioni su Cloudflare Stream.