HLS (HTTP Live Streaming)

HLS (HTTP Live Streaming) è un protocollo di comunicazione basato su HTTP (da non confondere con il formato) per lo streaming di media, sviluppato da Apple come parte di QuickTime, Safari, OS X e software iOS. Si basa sul principio di dividere un intero flusso in piccoli pezzi che vengono successivamente scaricati su HTTP. Il flusso è continuo e potrebbe teoricamente essere infinito. All’inizio di una sessione, viene scaricata una playlist in formato M3U, contenente metadati sui flussi annidati disponibili. HTTP Live Streaming (HLS) non è solo il più comune, ma anche uno dei più vecchi protocolli di trasferimento video HTTP.

Un vantaggio di HLS è che tutti i dispositivi connessi a Internet supportano il protocollo HTTP, rendendolo più facile da implementare rispetto ai protocolli di streaming che richiedono server specializzati. Un altro vantaggio è che lo streaming 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 può migliorare o degradare nel mezzo di un video mentre l’utente lo sta guardando. Questa caratteristica è conosciuta come “adaptive video delivery” o “adaptive streaming”, e senza di essa, condizioni di rete lente possono fermare completamente la riproduzione del video.

Come funziona HLS

HLS è un protocollo importante per lo streaming dal vivo. Il processo di streaming dal vivo assomiglia a questo:

  • I dispositivi di cattura (telecamere, microfoni, ecc.) catturano i contenuti.
  • Il contenuto viene inviato dal dispositivo di cattura a un codificatore video live.
  • L’encoder trasmette il contenuto alla piattaforma di hosting video tramite il protocollo RTMP.
  • La piattaforma di hosting video utilizza HLS ingest per inviare il contenuto al lettore video HTML5.
  • Questo processo richiede due soluzioni software di base: un encoder HLS per i video in diretta e una potente piattaforma di hosting video. Se si decide di trasmettere video in streaming utilizzando HLS, è necessario assicurarsi che entrambe le soluzioni software offrano i protocolli e le caratteristiche che abbiamo menzionato.

Architettura HLS

HLS utilizza un server web standard per distribuire video su richiesta, mentre richiede un software speciale per consentire lo streaming di contenuti in tempo reale.

Parte del server

Codifica e avvolge i media in arrivo in un formato adatto alla consegna. Poi il materiale viene preparato per la distribuzione tramite segmentazione. I media sono segmentati in chunks e in un file indice (playlist). Codifica: il video è codificato in H.264 e l’audio in MP3, HE-AAC o AC-3. Tutti questi sono inseriti in un flusso di trasporto MPEG-2 per la consegna successiva. Segmentazione: il contenuto in MPEG-2 TS è segmentato in porzioni di uguale lunghezza, scritte in file .ts. Viene anche creato un file indice, contenente riferimenti a fette o altri file indice - questo viene salvato come file .m3u8

Distribuzione

Funzionando come un server web standard, il server accetta le richieste dei clienti e fornisce tutto il necessario per la riproduzione.

Cliente

Richiede e scarica tutti i file, mettendoli insieme per fornire all’utente un flusso continuo di video. Il software client scarica il primo file di indice tramite un URL, seguito da diversi file multimediali disponibili. Il software di riproduzione riassembla tutto in una sequenza per la riproduzione. Ci sono due modalità di funzionamento di HLS - “on demand” e streaming dal vivo. In modalità on-demand, la playlist contiene link a tutti i frammenti dal primo all’ultimo. In modalità live, la playlist è riferita solo agli ultimi frammenti e i frammenti cambieranno di patch in patch riflettendo lo stato attuale della trasmissione.

HLS include il supporto per il bitrate adattivo, una tecnica in cui più flussi simultanei possono essere disponibili, ciascuno con contenuti diversi codificati a bitrate diversi, nonché altre caratteristiche diverse. Mentre il client gioca, può selezionare tra i molteplici flussi disponibili, permettendo alla sessione di adattarsi alle condizioni esterne di trasmissione della rete.

HLS supporta:

  • Flussi in diretta e contenuti preregistrati (video on demand o VOD)
  • Flussi multipli alternativi con diversi bit rate
  • Switch intelligente dei flussi in risposta al cambiamento della larghezza di banda della rete
  • Crittografia dei media e autenticazione dell’utente