Lo streaming è una tecnica per trasferire dati in modo che
siano processati come un flusso costante e continuo. Le tecnologie di streaming
sono importanti in quanto consentono di gestire l'accesso a file multimediali di
notevoli dimensioni in maniera veloce anche per gli utenti che non hanno accessi
Internet particolarmente performanti. Usando la tecnologia dello streaming, il
browser o il player dell'utente (ovvero l'applicazione in grado di riprodurre
l'audio e il video che vengono scaricati) può iniziare a mostrare i dati prima
che il file completo sia stato trasmesso. Perché questo processo sia efficace
occorre che il client raccolga e eroghi i dati costantemente all'applicazione
che li gestisce in modo da convertirli in suono o immagini. Tipicamente i dati
ricevuti dal client vengono accodati in un buffer dal quale si alimenta
costantemente la fase di riproduzione; in questo modo, se per qualche ragione il
flusso dati presenta delle irregolarità in fase di ricezione, non viene
compromessa la fase di presentazione; ovviamente, nel caso in cui le
irregolarità non siano compensate dalla lunghezza del buffer, anche in fase di
riproduzione si avvertirà la discontinuità.
Nell'erogazione di contenuti
audio/video in streaming si identificano le modalità
live e
on-demand. La modalità live è assimilabile alla trasmissione di tipo
televisivo. Il server che eroga il contenuto audio e video gestisce un unico
flusso che viene erogato a tutti i client che ne fanno richiesta: questo
significa che in un dato istante tutti i client riceveranno il medesimo flusso
di dati indipendentemente dal momento in cui hanno inoltrato la richiesta. La
modalità on-demand è assimilabile alla riproduzione da videoregistratore. Ogni
client opera in modo indipendente uno dall'altro e il server eroga un dato
contenuto ai vari client in maniera del tutto svincolata a livello temporale. La
realizzazione di uno streaming (sia per l'erogazione live che on-demand)
richiede varie fasi di lavoro:
- acquisizione: una sorgente audio/video (un videoregistratore, una
telecamera) deve essere collegata ad un sistema di acquisizione che tipicamente
consiste in un PC dotato di scheda di acquisizione audio/video
- codifica: il segnale acquisito deve essere codificato in un formato
erogabile in modalità streaming
- caricamento: il contenuto in streaming prodotto deve essere caricato
su un server in grado di erogarlo secondo la modalità streaming. A seconda del
formato di codifica adottato esistono vari applicativi in grado di gestire
questo tipo di contenuto
- pubblicazione: viene creata una pagina web che referenzia il
contenuto audio/video presente sul server di streaming
- erogazione: l'utente che si collega tramite web alla pagina dove è
stato pubblicato il contenuto audio/video inizierà a fruire dello streaming
mediante il player opportuno.
La
postproduzione è un'ulteriore fase di lavoro, che può essere
effettuata a vari livelli in fase di acquisizione, oppure in fase di codifica.
Si tratta di un'attività che viene eseguita tipicamente su materiale che deve
essere erogato in modalità on-demand. Si intende per postproduzione la
manipolazione del contenuto audio/video in modo tale da migliorarne la qualità,
aggiungere titoli, effetti oppure la sincronizzazione con contenuti esterni (ad
esempio slide) che devono essere visualizzati contestualmente durante la fase di
erogazione.
Formati video e codec
La mole di dati che
una sequenza video comporta è molto elevata (ad esempio, un secondo di una
trasmissione televisiva non compresso richiede 600-800 KB di spazio); sarebbe
quindi improponibile trasmettere un filmato senza averlo prima compresso (e
quindi codificato) con un algoritmo di compressione (codec). Il compito del
codec consiste nel trasformare, in fase di acquisizione, le informazioni
ricevute in un file più piccolo e compatto, e, in fase di riproduzione,
nell'interpretare il codice del file per poterlo visualizzare nella sua
integrità. La scelta del corretto formato video, e del corrispondente codec, è
di vitale importanza per la buona riuscita di uno streaming.
Tra i
formati video più utilizzati troviamo:
- Microsoft Video for Windows (AVI)
- Apple Quick Time (MOV)
- MPEG e MPEG2
- Real Media (RA e RM)
- Microsoft NetShow (ASF).
Ognuno di questi supporta vari tipi di
codec, con requisiti di banda e caratteristiche differenti.