How does live stream encoding work? | Video encoding

La codifica del live stream suddivide un video dal vivo in parti più piccole, le comprime e distribuisce i dati video attraverso una CDN. Gli aggiornamenti a questo processo stanno rendendo lo streaming dal vivo sempre più veloce.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Comprendere perché si codificano i file video
  • Scoprire come funziona la codifica del live stream
  • Scoprire come il miglioramento al processo di codifica del live stream può ridurre la latenza

Copia link dell'articolo

Cos'è il live streaming?

Lo streaming è un metodo di trasmissione dati su Internet che non obbliga gli utenti finali a scaricare i dati in maniera integrale. Il live streaming è un tipo di streaming in cui lo stream è diramato su Internet in tempo reale, senza essere prima registrato e archiviato.

Lo streaming di videogiochi, gli stream di social media come Periscope e Facebook Live, e le trasmissioni sportive su Internet sono tutti esempi di live streaming. Anche se è possibile effettuare lo streaming sia di audio che di video, in questo articolo ci concentreremo sullo streaming video.

Cos'è la codifica video?

La codifica video è il processo tramite il quale si comprimono i dati video così da poterli inviare verso un'altra destinazione. Il dispositivo che riceve lo stream, per esempio il tablet che un utente sta usando per guardare il suo programma preferito, provvede alla decodifica dei dati. La codifica video segue degli standard noti così che lo stream codificato possa essere decodificato da un'ampia gamma di dispositivi.

La codifica video è necessaria per due motivi principali:

  1. Inviare attraverso Internet file video non compressi richiede troppo tempo per essere un'alternativa percorribile.
  2. Il video deve essere in un formato interpretabile da qualsiasi dispositivo utente (smartphone, laptop, PC, ecc.).

In uno stream live video, un dispositivo riceve contemporaneamente degli input audiovisivi, li codifica e li invia ai destinatari. La parte relativa alla codifica è fondamentale per consentire a una vasta gamma di dispositivi utente di ricevere e riprodurre il video.

Come funziona la codifica del live stream?

Un live stream da una fonte di acquisizione video, per esempio una webcam, viene inviato a un server dove un protocollo di streaming come HLS o MPEG-DASH lo suddivide in segmenti più piccoli, ciascuno della durata di qualche secondo.

The video content is then encoded using an encoding standard. The encoding standard in wide use today is called H.264, but standards like H.265, VP9, and AV1 are also in use. This encoding process compresses the video by removing redundant visual information. For example, in a stream of someone talking against the background of a blue sky, the blue sky does not need to be rendered again for every second of video, since it does not change a lot. Therefore, the blue sky can be stripped out from most frames of the video.

I dati video segmentati e compressi sono poi distribuiti usando una content delivery network (CDN). Senza una CDN, saranno davvero in pochi a poter visualizzare il live stream; la parte finale di questo articolo spiega perché.

La maggior parte dei dispositivi mobili hanno un codificatore integrato, e questo rende facile agli utenti non specializzati di eseguire un live stream su piattaforme di social media e app di messaggistica. Le aziende e i marchi che desiderano stream di qualità superiore utilizzano software o hardware di codifica propri, o entrambi.

In che modo le tecnologie più moderne stanno velocizzando il live streaming?

Nella maggior parte dei live stream, il pubblico ancora incontra una latenza di 20-30 secondi, in altre parole, il contenuto che visualizza è in ritardo di circa 20-30 secondi rispetto al tempo reale. Ciò accade in parte perché ogni segmento di video deve caricarsi completamente prima di poter essere riprodotto, e possono volerci diversi secondi per caricare ciascun segmento.

Una soluzione per ovviare a tale ritardo si chiama codifica a blocchi o "chunking". Questa funziona suddividendo i segmenti video in blocchi ancora più piccoli. Questi sono poi codificati e i dispositivi che ricevono lo stream possono riprodurli prima che si carichi l'intero segmento.

In che modo le CDN stanno migliorando l'accelerazione del live streaming?

Le CDN sono fondamentali per lo streaming dal vivo, perché rendono possibile distribuire lo stream agli utenti in punti geografici molto diversi. Inoltre, le CDN hanno molta più larghezza di banda per distribuire lo stream rispetto a un singolo server di origine. Senza una CDN, il live stream potrebbe facilmente imbattersi in problemi di larghezza di banda.

Tuttavia, la maggior parte delle CDN devono comunque caricare completamente un segmento video prima di poterlo servire a diversi utenti simultaneamente. Questo reintroduce il problema di latenza che la codifica a blocchi dovrebbe, in teoria, risolvere.

To speed up live streaming, Cloudflare offers a feature called concurrent streaming acceleration. The Cloudflare CDN can deliver a segment of video to multiple end users at once while it is still loading, eliminating the wait time while the entire segment loads. The Cloudflare global network spans 250 cities in more than 100 countries, enabling users around the world to tune into a high-quality, real-time live stream.