Come funziona lo streaming? Una semplice guida tecnica
Quando premi play su un video online, l’immagine che appare sullo schermo è il risultato di diversi sistemi che lavorano insieme. Quindi, come funziona lo streaming dietro quel semplice pulsante? Il contenuto multimediale originale viene preparato per la distribuzione online e ospitato su un server o su una rete di distribuzione dei contenuti. Il tuo dispositivo lo richiede e un lettore multimediale lo elabora.
In molti sistemi di streaming moderni, il video viene anche suddiviso in parti più piccole e reso disponibile a diversi livelli di qualità. Il lettore richiede quindi i contenuti multimediali necessari e continua a richiederne altri mentre la riproduzione procede. Questo articolo illustra il processo, dal video originale fino allo schermo. Non tratta velocità Internet, utilizzo dei dati, 4K, HDR e risoluzione dei problemi, poiché questi argomenti hanno guide dedicate.
Il processo di streaming di base
Quindi, come funziona lo streaming dopo aver premuto play? Un percorso semplificato passa attraverso diverse fasi. La sorgente video viene codificata e preparata come contenuto multimediale. Da lì, viene ospitata su un server o CDN, inviata attraverso Internet, ricevuta da un lettore di streaming e infine visualizzata sullo schermo.
Ogni parte di questo percorso svolge un ruolo diverso. La codifica converte il video originale in formati adatti alla riproduzione, mentre il contenuto multimediale preparato viene ospitato e distribuito attraverso una rete.
Il dispositivo richiede il contenuto, riceve i dati multimediali necessari e li passa al lettore. Il lettore gestisce questi dati e li trasforma nell’audio e nel video che vedi e ascolti. L’implementazione esatta varia a seconda dei servizi, ma questo processo generale è comune nella moderna distribuzione di video su Internet.
Passaggio 1: il video originale viene preparato
Lo streaming inizia prima che qualcuno prema play. Un video può partire da una registrazione sorgente di alta qualità o da un altro file master. Questa sorgente non è necessariamente la versione esatta che viene distribuita a ogni spettatore.
Il file originale deve essere preparato per la distribuzione online. La preparazione può includere la codifica del video e dell’audio in formati supportati dai dispositivi e dai sistemi di riproduzione interessati.
Un servizio può creare diverse versioni dello stesso contenuto in modo che il proprio sistema di streaming abbia più opzioni durante la riproduzione. Un singolo contenuto, per esempio, può avere diverse versioni con bitrate e risoluzioni differenti. Il lettore può quindi selezionare la versione più adatta invece di dipendere da una sola rappresentazione fissa.
Passaggio 2: il video viene suddiviso in segmenti multimediali
Molti sistemi di streaming moderni non distribuiscono un intero video come un unico file di grandi dimensioni. Invece, suddividono il contenuto multimediale in segmenti più piccoli.
HTTP Live Streaming, o HLS, è un esempio. Apple descrive HLS come una tecnologia che distribuisce audio e video attraverso normali server web e reti di distribuzione dei contenuti. HLS utilizza playlist per identificare i contenuti multimediali che un client deve richiedere.
In una configurazione HLS tipica, la playlist contiene riferimenti ai segmenti multimediali e il lettore legge quella playlist e richiede i segmenti necessari. Questo crea un ciclo continuo: il lettore legge la playlist, recupera un segmento dopo l’altro e mantiene la riproduzione in corso.
I singoli segmenti normalmente non sono visibili allo spettatore. Fanno parte del sistema tecnico di distribuzione che opera dietro le quinte del lettore.
Passaggio 3: una playlist descrive i contenuti multimediali disponibili
Una playlist fornisce le informazioni che un lettore utilizza per individuare e selezionare i contenuti multimediali. Per HLS, le playlist sono comunemente rappresentate da file M3U8.
La documentazione di Apple descrive una playlist HLS come un indice contenente un elenco ordinato di URL relativi ai segmenti multimediali. Il client accede a questo indice e richiede quindi i file multimediali a cui fanno riferimento.
Un servizio può anche fornire una playlist che descrive diverse versioni dello stesso contenuto. Queste versioni possono rappresentare diverse combinazioni di risoluzione, bitrate, codec, audio e sottotitoli. Il lettore utilizza queste informazioni per decidere quale rappresentazione richiedere.
Passaggio 4: il contenuto viene distribuito da un server o CDN
Il contenuto multimediale preparato deve essere disponibile in un luogo che gli spettatori possano raggiungere. Questo può significare normali server web oppure una rete di distribuzione dei contenuti, comunemente chiamata CDN.
Una CDN distribuisce i contenuti attraverso una rete di punti di distribuzione, consentendo agli utenti di recuperare i dati tramite un’infrastruttura progettata per la distribuzione su larga scala. HLS è progettato specificamente per funzionare con server web e CDN.
Lo spettatore normalmente non deve sapere quale singolo server gestisce una determinata richiesta. L’infrastruttura di distribuzione opera dietro le quinte mentre il lettore riceve i contenuti multimediali necessari.
Passaggio 5: il dispositivo richiede il contenuto multimediale
Quando selezioni un video, l’applicazione o il browser avvia il processo di riproduzione. Il lettore deve determinare dove si trova il contenuto multimediale e quali formati può riprodurre.
Per uno streaming HLS, questo può comportare la richiesta della playlist e successivamente la richiesta dei segmenti multimediali identificati dalla playlist. La documentazione di Apple su HLS descrive una configurazione di base in cui una pagina HTML o un’applicazione client agisce come ricevitore. In questa configurazione, un server web o una CDN ospita i contenuti multimediali.
Il punto importante è che il dispositivo non riceve semplicemente un unico file continuo. Il lettore partecipa a una sequenza di richieste e decisioni relative alla riproduzione.
Passaggio 6: il lettore esegue il buffering di alcuni contenuti multimediali
Il lettore non deve necessariamente aspettare che ogni singolo segmento termini di essere riprodotto prima di richiedere quello successivo. Può mantenere pronti ulteriori contenuti multimediali prima della posizione di riproduzione corrente. Questo processo viene chiamato buffering.
Un buffer fornisce al lettore alcuni contenuti multimediali da utilizzare mentre arrivano altri dati. Questo non significa che il buffering sia sempre un problema. Durante una riproduzione normale, il buffering fa semplicemente parte del modo in cui un lettore mantiene il video in esecuzione in modo continuo.
Il problema si verifica quando il lettore non riesce a ottenere abbastanza contenuti multimediali utilizzabili per mantenere la riproduzione. Le cause di queste interruzioni appartengono alla sezione separata del sito dedicata alla risoluzione dei problemi, quindi questo articolo non si trasformerà in una guida al troubleshooting.
Passaggio 7: il lettore decodifica i contenuti multimediali
La ricezione dei dati multimediali non è l’ultimo passaggio. Il dispositivo deve ancora elaborare il video e l’audio affinché possano essere riprodotti.
Il lettore multimediale utilizza codec supportati e le capacità del dispositivo per decodificare il contenuto. Il video decodificato viene quindi inviato allo schermo, mentre l’audio viene elaborato per la riproduzione attraverso gli altoparlanti del dispositivo, le cuffie o un sistema audio collegato.
Questo è uno dei motivi per cui la compatibilità è importante. Un servizio di streaming può distribuire correttamente i contenuti multimediali, ma il dispositivo e il software devono comunque supportare i formati interessati.
Come si inserisce lo streaming adattivo in questo processo?
Come funziona lo streaming quando la velocità della connessione cambia a metà di un video? Molti sistemi di streaming forniscono diverse versioni dello stesso contenuto e il lettore sceglie tra queste versioni quando cambiano le condizioni di riproduzione. Questa è l’idea di base dello streaming a bitrate adattivo.
Apple descrive HLS come una tecnologia che adatta dinamicamente la riproduzione alle condizioni della rete. La documentazione HLS supporta diverse codifiche dello stesso contenuto attraverso playlist multivariant.
Un lettore può avere accesso a diverse rappresentazioni di un video, richiederne una e successivamente passare a un’altra quando cambiano le condizioni. L’obiettivo è mantenere la riproduzione in corso utilizzando la versione più adatta. Trattiamo questa tecnologia in modo molto più approfondito in un articolo separato, Che cos’è lo streaming a bitrate adattivo?
Che cosa succede durante lo streaming in diretta?
Come funziona lo streaming in modo diverso quando non esiste un file completato da cui partire? Il concetto di base rimane simile, ma lo streaming in diretta introduce una differenza importante. Con un video on demand, il contenuto esiste già e viene richiesto quando uno spettatore sceglie di guardarlo. Con una trasmissione in diretta, invece, nuovi contenuti multimediali continuano a essere prodotti e aggiunti al sistema di distribuzione in tempo reale.
In un flusso HLS in diretta, la playlist viene aggiornata quando diventano disponibili nuovi segmenti multimediali. Apple documenta questo comportamento delle playlist in diretta, nel quale vengono aggiunti nuovi segmenti mentre l’evento procede.
Questo crea un ciclo continuo: la sorgente live continua a essere codificata, vengono aggiunti nuovi segmenti e la playlist viene aggiornata. Il lettore continua semplicemente a seguire lo streaming e a richiedere ciò che è nuovo.
Qual è la differenza tra un server e una CDN?
Un server e una CDN sono entrambi collegati alla distribuzione dei contenuti, ma non sono esattamente la stessa cosa. Un server può ospitare o fornire accesso ai contenuti multimediali, mentre una CDN è un sistema di distribuzione distribuito progettato per fornire contenuti attraverso più punti della rete.
Per i grandi servizi di streaming, l’infrastruttura di distribuzione può essere molto più complessa di un singolo server che invia direttamente un video a ogni spettatore. L’utilizzo di una CDN aiuta i servizi a distribuire grandi quantità di contenuti multimediali in modo efficiente attraverso località diverse. HLS è stato progettato per funzionare con server web e CDN standard, senza richiedere una rete di trasporto specializzata per lo streaming.
Lo streaming utilizza una sola connessione dall’inizio alla fine?
Non necessariamente. Una sessione di streaming può comportare diverse richieste per playlist, segmenti multimediali e altre risorse. Il comportamento esatto dipende dalla tecnologia di streaming e dal servizio.
Un lettore HLS, per esempio, può richiedere una playlist e poi richiedere i file multimediali a cui fa riferimento. Lo streaming HLS in diretta aggiunge un ulteriore livello, poiché la playlist stessa può cambiare quando diventano disponibili nuovi contenuti multimediali. Questo è uno dei motivi per cui il processo tecnico che si trova dietro un semplice pulsante play è più complesso di quanto possa sembrare.
Perché la tecnologia di streaming utilizza i segmenti
Quindi, come funziona lo streaming esattamente a livello dei segmenti? Suddividere i contenuti multimediali in parti più piccole offre diversi vantaggi tecnici. Permette al lettore di richiedere progressivamente i contenuti invece di ricevere un file completo. Consente inoltre ai sistemi di streaming di lavorare con diverse versioni dello stesso contenuto.
Con lo streaming adattivo, il lettore può selezionare rappresentazioni diverse mentre la riproduzione continua. I segmenti si adattano inoltre naturalmente alla distribuzione basata su HTTP e alle infrastrutture di caching.
Il formato e la durata esatti dei segmenti variano a seconda della tecnologia di streaming e dell’implementazione. Apple osserva che i segmenti multimediali HLS sono in genere file di piccole dimensioni, con esempi che utilizzano segmenti di circa sei secondi, anche se la durata può variare.
Un esempio semplice
Quindi, come funziona lo streaming in una situazione reale? Immagina un video di 60 minuti preparato per lo streaming. Invece di trattarlo come un unico oggetto di grandi dimensioni, il servizio potrebbe prepararlo come una sequenza di segmenti multimediali.
Il lettore potrebbe prima richiedere la playlist e poi richiedere un numero sufficiente di segmenti per iniziare la riproduzione. Mentre guardi il video, il lettore continua a richiedere altri segmenti. Se sono disponibili più versioni con qualità differenti, può passare da una all’altra in base alle regole del sistema di streaming e alle condizioni del momento.
Tu vedi un unico video continuo. Dietro le quinte, il lettore gestisce un’intera sequenza di richieste di contenuti multimediali e decisioni relative alla riproduzione.
Tutti i servizi di streaming funzionano esattamente in questo modo?
No. Le tecnologie e le implementazioni di streaming sono diverse, quindi la risposta alla domanda su come funziona lo streaming può variare leggermente a seconda del servizio.
HLS è un approccio ampiamente utilizzato, ma altri sistemi utilizzano protocolli e formati differenti. I servizi spesso combinano tecnologie diverse in base ai dispositivi, alle applicazioni, ai contenuti e ai requisiti di distribuzione. Lo scopo di questa guida è spiegare l’architettura generale alla base dello streaming moderno, non affermare che ogni servizio funzioni nello stesso modo.
Domande frequenti
Lo streaming invia l’intero video al mio dispositivo tutto in una volta?
Di solito no. I sistemi di streaming moderni distribuiscono i contenuti multimediali progressivamente, spesso utilizzando segmenti più piccoli che il lettore richiede mentre la riproduzione continua. HLS è un esempio di questo approccio.
Che cos’è un segmento di streaming?
Un segmento multimediale è una parte più piccola di uno streaming che può essere richiesta e riprodotta come parte di una presentazione più ampia.
Che cos’è una playlist HLS?
Una playlist HLS è un indice che fornisce informazioni sui contenuti multimediali disponibili per il lettore, inclusi i riferimenti ai segmenti multimediali.
Che cosa fa una CDN per lo streaming?
Una CDN fornisce un’infrastruttura distribuita per la distribuzione dei contenuti agli utenti. HLS è progettato per funzionare con le CDN oltre che con i normali server web.
Come fa un lettore a sapere quale versione di qualità richiedere?
In HLS, una playlist multivariant elenca le diverse versioni disponibili, ciascuna con una risoluzione o un bitrate differenti. Il lettore controlla le condizioni attuali della rete e sceglie la versione che consente di mantenere una riproduzione fluida.
Come cambia la playlist durante una trasmissione in diretta?
In un flusso HLS in diretta, la playlist viene aggiornata continuamente mentre vengono prodotti nuovi segmenti. Il lettore continua a richiedere i segmenti più recenti invece di lavorare da un elenco fisso.





