Cosa vuol dire Streaming – una definizione
Nessun Commento Scritto il
October 27, 2009 – 1:42 pm
La forte espansione di Internet, la possibilità di usufruire di reti sempre più veloci e la capacità di compressione dei più recenti video codec hanno spinto la ricerca ed i fornitori di servizi a soluzioni innovative per la distribuzione di contenuti multimediali.
La richiesta di contenuti interessanti da parte del grande pubblico ha spesso come oggetto i più disparati contenuti: video musicali, video amatoriali, notiziari, eventi sportivi.
Il più grande problema nel distribuire questo tipo di contenuti risiede sicuramente nella dimensione dei file e di conseguenza nel tempo necessario al download. Si fa inoltre sempre più viva l’esigenza di trasmettere eventi real time, con stringenti vincoli sul tempo di consegna e di risposta dei pacchetti immessi nella rete. Proprio per questo tipo di compiti è stato studiata ed implementata la tecnologia di streaming. Con questo termine si intende la trasmissione di uno o più flussi continui di dati che non hanno la necessità di essere completati per essere fruiti. Questo significa che ad esempio per vedere il filmato che si ha intenzione di scaricare non è necessario attendere tutto il tempo necessario al download completo del file. Proprio questo è il punto fondamentale che rende possibile la trasmissione di eventi “near-live”, ovvero solo con piccoli ritardi dovuti prevalentemente alla trasmissione dei pacchetti attraverso la rete.
Un altro grande vantaggio di questo tipo di distribuzione è dato dalla necessità di memorizzare sul dispositivo che stiamo utilizzando per la visione (che sia esso un pc od un telefonino di nuova generazione) solo una piccola quantità di dati, e non l’intero file, fattore questo fondamentale se si pensa di utilizzare questo tipo di distribuzione in ambienti “mobile”, dove spesso non si hanno grosse capacità di memoria dei dispositivi.
Il generico processo di streaming può essere schematizzato come segue.
Il video deve essere prima di tutto acquisito attraverso strumenti come videocamere o dispositivi simili. Una volta immagazzinati i dati, questi vengono codificati, per ridurre al massimo la quantità di informazioni che deve essere trasmessa attraverso la rete.
Il codec realizza la compressione e la decompressione dei singoli fotogrammi nel formato e con la qualità necessaria al target del vostro applicativo. Il codec rappresenta il cuore di qualunque applicazione che manipoli o visualizzi flussi video e/o audio.
È interessante notare come questa codifica sia generalmente di tipo “lossy” ovvero con perdita di qualità. Per l’utente sarà, infatti, accettabile una degradazione rispetto al filmato originale più o meno evidente che permetterà una più agevole trasmissione dello stream.
La fase di streaming vera e propria è realizzata sulla base di specifici protocolli (RTP, RTSP,MMS,TRMP…)
Una volta giunti al client i vari stream devono essere riassemblati e decodificati. Deve essere ricostruita l’eventuale sincronia tra i diversi flussi di dati ed infine deve essere visualizzato il contenuto.
Si può notare che questo processo risulta essere asimmetrico. Mentre infatti da parte del server è accettabile un lungo tempo di codifica (nel caso di trasmissioni non real-time) e può essere richiesta una discreta potenza di calcolo, questo spesso non è accettabile da parte del client.



