Lo streaming è un metodo per visualizzare video o ascoltare contenuti audio senza dover effettivamente scaricare i file multimediali. Le prestazioni dello streaming possono essere migliorate e il tempo di buffering ridotto se il proprietario dei file utilizza una CDN.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Cos'è il live streaming?
Codifica live stream
HTTP Live Streaming
Cos'è MPEG-DASH?
Formati per la codifica video
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
I primi siti Web erano semplici pagine di testo con magari una o due immagini. Oggi, invece, chiunque disponga di una connessione Internet sufficientemente veloce può guardare film in alta definizione o effettuare videochiamate tramite Internet. Ciò è possibile grazie a una tecnologia chiamata streaming.
Lo streaming è la trasmissione continua di file audio o video da un server a un client. In parole povere, lo streaming è ciò che avviene quando i consumatori guardano la TV o ascoltano podcast su dispositivi connessi a Internet. Con lo streaming, il file multimediale riprodotto sul dispositivo client viene archiviato in remoto e trasmesso per pochi secondi alla volta tramite Internet.
Lo streaming avviene in tempo reale ed è più efficiente del download di file multimediali. Se si scarica un file video, una copia dell'intero file viene salvata sul disco rigido del dispositivo e il video non può essere riprodotto finché non viene completato il download dell'intero file. Se invece viene trasmesso in streaming, il browser riproduce il video senza effettivamente copiarlo e salvarlo. Il video viene caricato un po' alla volta anziché caricare l'intero file in una volta sola, e le informazioni caricate dal browser non vengono salvate localmente.
Pensa alla differenza tra un lago e un ruscello: entrambi contengono acqua, e un ruscello può contenere la stessa quantità d'acqua di un lago; la differenza è che in un ruscello l'acqua non si trova tutta nello stesso posto nello stesso momento. Un file video scaricato è più simile a un lago, nel senso che occupa molto spazio sul disco rigido (e ci vuole molto tempo per spostare un lago). Lo streaming video è più simile a un ruscello o a un fiume, nel senso che i dati del video fluiscono in modo continuo e rapido verso il browser dell'utente.
Proprio come altri dati inviati tramite Internet, i dati audio e video vengono suddivisi in pacchetti di dati. Ogni pacchetto contiene una piccola parte del file e un lettore audio o video nel browser del dispositivo client prende il flusso di pacchetti di dati e li interpreta come video o audio.
Alcuni metodi di streaming utilizzano il protocollo UDP, mentre altri usano il TCP. UDP e TCP sono protocolli di trasporto, ovvero vengono utilizzati per spostare pacchetti di dati attraverso le reti. Entrambi vengono utilizzati con il protocollo Internet (IP). Il TCP apre una connessione dedicata prima di trasmettere i dati e garantisce che tutti i pacchetti di dati arrivino in ordine. A differenza del TCP, l'UDP non fa nessuna di queste cose. Di conseguenza, TCP è più affidabile, ma la trasmissione dei dati tramite UDP non richiede tanto tempo quanto quella tramite TCP, anche se alcuni pacchetti vanno persi lungo il percorso.
Se TCP è come un servizio di consegna pacchi che richiede al destinatario di firmare per la consegna, allora UDP è come un servizio di consegna che lascia i pacchi sulla veranda senza bussare alla porta per ottenere una firma. Il servizio di consegna TCP perde meno pacchi, ma il servizio di consegna UDP è più veloce, perché i pacchi possono essere consegnati anche se non c'è nessuno in casa che possa firmare per loro.
In alcuni casi, nello streaming la velocità è molto più importante dell'affidabilità. Ad esempio, se qualcuno partecipa a una videoconferenza, preferirà interagire con gli altri partecipanti in tempo reale piuttosto che restare seduto ad aspettare che vengano trasmessi tutti i dati. Pertanto, la perdita di alcuni pacchetti di dati non rappresenta un grosso problema ed è opportuno utilizzare UDP.
In altri casi, l'affidabilità è più importante per lo streaming. Ad esempio, sia HTTP live streaming (HLS) che MPEG-DASH sono protocolli di streaming che utilizzano TCP per il trasporto. Molti servizi di video on demand utilizzano il protocollo TCP.
I lettori multimediali in streaming caricano in anticipo alcuni secondi del flusso in modo che la riproduzione del video o dell'audio possa continuare anche se la connessione viene interrotta brevemente. Questo è noto come buffering. Il buffering garantisce la riproduzione fluida e continua dei video. Tuttavia, su connessioni lente o se la rete ha un'elevata latenza, il caricamento di un video potrebbe richiedere molto tempo.
Lo streaming è soggetto agli stessi tipi di ritardi e cali di prestazioni di altri tipi di contenuti Web. Poiché il contenuto trasmesso in streaming viene archiviato altrove, la posizione di hosting fa una grande differenza, come nel caso di qualsiasi tipo di contenuto a cui si accede tramite Internet. Se un utente di New York prova a effettuare lo streaming da un server Netflix di Los Gatos, il contenuto video dovrà percorrere quasi 5.000 chilometri per raggiungere l'utente e il video dovrà trascorrere molto tempo in buffering o potrebbe addirittura non essere riprodotto affatto. Per questo motivo, Netflix e altri fornitori di streaming fanno ampio uso di reti di distribuzione di contenuti (CDN) distribuite, che archiviano i contenuti in luoghi in tutto il mondo molto più vicini agli utenti.
Le CDN hanno un enorme impatto positivo sulle prestazioni dello streaming. Cloudflare Stream utilizza la CDN di Cloudflare per memorizzare nella cache e fornire contenuti video in tutti i datacenter Cloudflare del mondo; il risultato è una latenza ridotta per tempi di avvio video brevi e un minor buffering.