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

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 mentre un utente lo sta guardando. Questa funzione si chiama "adaptive bitrate video delivery" o "adaptive bitrate streaming", ovvero bitrate adattivo, e senza di esso, una rete lenta può bloccare completamente 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, 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 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 ABR è possibile perché durante il processo di segmentazione, HLS crea diversi duplicati stream segmentati con diversi livelli di qualità. Il lettore video dell'utente può quindi passare senza interruzioni da uno stream all'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, molti protocolli di streaming lo usano al posto del TCP. HLS, tuttavia, usa TCP e 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 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 100 paesi. Questo consente agli utenti in tutto il mondo di ricevere stream HLS ad alta qualità e velocemente. Ulteriori informazioni su Cloudflare Stream.