Lo streaming live è la consegna di dati video o audio a un pubblico su Internet durante la creazione dei dati.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Lo streaming è il metodo di trasmissione dei dati utilizzato quando qualcuno guarda un video su Internet. È un modo per distribuire un file video un po' alla volta, spesso da una posizione di archiviazione remota. Trasmettendo via Internet pochi secondi del file alla volta, i dispositivi client non devono scaricare l'intero video prima di iniziare a riprodurlo.
Il live streaming (o diretta streaming) avviene quando il video in streaming viene inviato tramite Internet in tempo reale, senza essere prima registrato e archiviato. Oggigiorno, trasmissioni televisive, streaming di videogiochi e video sui social media possono essere trasmessi in live streaming.
Pensa alla differenza tra lo streaming normale e il live streaming come alla differenza tra un attore che recita un monologo imparato a memoria e un attore che improvvisa un discorso. Nel primo caso, il contenuto viene creato in anticipo, archiviato e poi trasmesso al pubblico. Nel secondo caso, il pubblico riceve il contenuto nello stesso momento in cui l'attore lo crea, proprio come nel live streaming.
Il termine live streaming si riferisce solitamente alla trasmissione in diretta di flussi video: connessioni uno-a-molti che raggiungono più utenti contemporaneamente. Le tecnologie di videoconferenza come Skype, FaceTime e Google Hangouts Meet si basano su protocolli di comunicazione in tempo reale (RTC) anziché sui protocolli utilizzati dalle trasmissioni in live streaming uno a molti.
Ecco i passaggi principali che si svolgono dietro le quinte durante un live streaming:
Il live streaming inizia con dati video grezzi: le informazioni visive catturate da una telecamera. All'interno del dispositivo informatico a cui è collegata la telecamera, queste informazioni visive sono rappresentate come dati digitali, in altre parole, 1 e 0 al livello più profondo.
Successivamente, i dati video segmentati vengono compressi e codificati. I dati vengono compressi rimuovendo le informazioni visive ridondanti. Ad esempio, se il primo fotogramma del video mostra una persona che parla su uno sfondo grigio, non è necessario che lo sfondo grigio venga renderizzato per i fotogrammi successivi che hanno lo stesso sfondo.
Immagina di dover comprimere un video come se aggiungessi un nuovo mobile al soggiorno. Non è necessario acquistare mobili completamente nuovi ogni volta che si aggiunge una nuova sedia o un nuovo tavolino. Invece è possibile mantenere più o meno la stessa disposizione della stanza e sostituire solo un pezzo alla volta, apportando occasionalmente modifiche più ampie se necessario. Allo stesso modo, non è necessario riprodurre nella loro interezza tutti i fotogrammi di un flusso video, ma solo le parti che cambiano da un fotogramma all'altro, come il movimento della bocca di una persona.
Per "codifica" si intende il processo di conversione dei dati in un nuovo formato. I dati video in live streaming vengono codificati in un formato digitale interpretabile, riconosciuto da un'ampia varietà di dispositivi. Gli standard di codifica video comuni includono:
I video contengono molte informazioni digitali, motivo per cui scaricare un file video richiede più tempo rispetto al download di un breve PDF o di un'immagine. Poiché non sarebbe pratico inviare tutti i dati video in una sola volta su Internet, lo streaming video viene suddiviso in segmenti più piccoli della durata di pochi secondi.
Una volta che il live streaming è stato segmentato, compresso e codificato (tutte queste operazioni richiedono solo pochi secondi), deve essere reso disponibile alle decine o milioni di spettatori che desiderano guardarlo. Per mantenere un'elevata qualità con una latenza minima durante la distribuzione del flusso a più spettatori in luoghi diversi, è opportuno che venga utilizzato una CDN.
Una CDN è una rete distribuita di server che memorizzano nella cache e forniscono contenuti per conto di un server di origine. L'utilizzo di una CDN garantisce prestazioni più rapide, poiché le richieste degli utenti non devono più raggiungere il server di origine, ma possono essere gestite da un server della CDN nelle vicinanze. La gestione delle richieste e la distribuzione dei contenuti in questo modo riducono anche il carico di lavoro del server di origine. Infine, le CDN consentono di servire in modo efficiente i contenuti agli utenti in tutto il mondo, perché i loro server sono dislocati in tutto il mondo anziché essere concentrati in un'unica area geografica.
Una CDN memorizza nella cache, ovvero salva temporaneamente, ogni segmento del live streaming, quindi la maggior parte degli spettatori riceverà il live streaming dalla cache della CDN anziché dal server di origine. In questo modo, il live streaming è più vicino al tempo reale, anche se i dati memorizzati nella cache sono indietro di qualche secondo, perché riduce il tempo di andata e ritorno (RTT) da e verso il server di origine.
La CDN invia il live streaming a tutti gli utenti che lo stanno guardando. Il dispositivo di ciascun utente riceve, decodifica e decomprime i dati video segmentati. Infine, un lettore multimediale sul dispositivo dell'utente (un'app dedicata o un lettore video nel browser) interpreta i dati come informazioni visive e il video viene riprodotto.
Supponiamo che Alice avvii una trasmissione in diretta sul suo smartphone e che Bob, che vive dall'altra parte del Paese, si sintonizzi sulla trasmissione in diretta sul suo smartphone, insieme a qualche altra decina di amici di Alice. Alice inizia la trasmissione in diretta puntando la fotocamera dello smartphone su se stessa e dicendo: "Hello, world!" Cosa deve succedere affinché la sezione "Hello, world" del video raggiunga Bob dall'altra parte del paese, insieme a tutte le altre persone che guardano lo streaming?
Per prima cosa, lo smartphone di Alice codificherà e comprimerà quel piccolo segmento di video. Se Alice sta filmando la trasmissione in diretta dalla sua cucina, la parete della cucina verrà registrata come primo fotogramma del video; i fotogrammi successivi la ometteranno, poiché lo sfondo non cambia.
Ora l'app utilizzata da Alice invierà la versione codificata e compressa del suo messaggio "Hello, world" alla CDN dell'app. Fortunatamente per Bob, uno dei server della CDN si trova a pochi chilometri di distanza da casa sua, quindi la richiesta del primo segmento della diretta streaming inviata dal suo smartphone riceve risposta quasi immediatamente. Altri spettatori del live streaming potrebbero riscontrare una latenza maggiore o minore rispetto a Bob, a seconda della loro posizione geografica.
Il telefono di Bob decodifica il segmento video e ricostruisce i dati compressi in modo che la parete della cucina di Alice appaia in ogni fotogramma. E infine, solo pochi secondi dopo che Alice ha detto "Hello, world" nella sua cucina dall'altra parte del Paese, il suo volto appare sullo smartphone di Bob e Bob vede e sente il suo saluto.
Larghezza di banda: in un dato punto di una rete può passare solo una certa quantità di dati alla volta; questa misurazione è nota come "larghezza di banda". Se un flusso di dati raggiunge un punto della rete in cui la quantità di dati supera la capacità, questo viene definito "punto di strozzatura" perché la trasmissione dei dati viene strozzata e rallentata. Un punto di strozzatura è simile al rallentamento del traffico che può verificarsi quando troppe auto provano a utilizzare una strada a corsia singola.
Se tutti i visualizzatori di uno streaming ricevono i dati dello streaming dal suo punto di origine, il server di origine e l'infrastruttura di rete circostante diventano un punto di strozzatura e lo streaming rallenta. Ma se l'onere principale della distribuzione in streaming viene spostato su una CDN, il punto di strozzatura viene eliminato.
Distribuzione globale di contenuti: poiché le CDN sono distribuite in tutto il mondo, sono in grado di distribuire contenuti a un pubblico globale. Un server di origine a New York non può servire efficacemente i contenuti a un pubblico a Milano, e questo vale soprattutto per i contenuti pesanti come i video. Tuttavia, una CDN può inoltrare e servire contenuti da qualsiasi punto della sua rete, in modo che una persona a Milano che guarda un live streaming da New York possa ottenere lo streaming da un server a Milano invece di dover attendere che venga caricato da New York.
Riduzione di latenza e RTT: la distribuzione di contenuti a livello globale con una CDN riduce la latenza per gli spettatori di live streaming riducendo il tempo di andata e ritorno (RTT). Il round trip richiesta-risposta è più breve sia in termini di distanza che di tempo, poiché la richiesta di uno spettatore per uno streaming live non deve più viaggiare alla fonte originale dello streaming e i dati in streaming non devono più viaggiare da anche l'origine. Ciò riduce i ritardi e aiuta a mantenere il live streaming più vicino al "live".
Carico di lavoro: rispondere alle richieste di dati degli utenti richiede al server una certa potenza di calcolo. Rispondere a numerose richieste di dati video da parte degli utenti può sovraccaricare un singolo server. Una CDN utilizza decine o centinaia di server che possono alleggerire gran parte del carico di lavoro del server di origine e mantenerlo attivo e funzionante.
Caching: una CDN memorizza nella cache ogni segmento video di un live streaming. La CDN può quindi consegnare i segmenti dalla cache invece di ottenere i dati dal server di origine.
Fornire un live streaming da una cache sembra una contraddizione: se lo streaming è live, come può essere più veloce salvarlo e fornirlo qualche secondo dopo? Sebbene sia vero che un live streaming memorizzato nella cache sarà in ritardo rispetto al tempo reale, è comunque più veloce rispetto al trasferimento diretto al server di origine. Il viaggio di andata e ritorno richiederebbe così tanto tempo che il flusso rimarrebbe ancora più indietro. Grazie alla memorizzazione della CDN nella cache, gli utenti riscontrano tempi di ritardo minimi.
La CDN di Cloudflare utilizza una tecnica chiamata accelerazione dello streaming simultaneo per velocizzare la distribuzione del live streaming. Alcune CDN non possono servire un segmento video a più di un utente finché il segmento non viene completamente salvato nella cache. Tuttavia, la CDN di Cloudflare è in grado di servire questi segmenti direttamente a più utenti contemporaneamente mentre vengono caricati, risparmiando agli utenti preziosi secondi di attesa. Scopri di più sull'accelerazione dello streaming simultaneo.