Streaming Media Ing. Maurizio Vitale 24/09/2003 © 2003 1 Streaming Media Introduzione Comunicazione multimediale il contenuto informativo risiede in più media (dati, voce, video, ecc.) Videocomunicazione - classificazione: uno a molti monodirezionale (broadcast o ondemand) uno a molti bidirezionale (interazione tra uditori e parlatore) molti a molti (videoconferenza) Uno a molti BASSO Broadcast 2 Streaming Webcasting Livello di interazione On Demand con feedback Molti a molti ALTO Real time Streaming Media Streaming Tecnologia emergente 3 Consente l’accesso a contenuti multimediali (audio, video, ecc.) in tempo reale o a richiesta (on demand) I contenuti multimediali sono trasmessi da un media server e sono elaborati e riprodotti da una applicazione client, il player Non occorre attendere che sia completato il download del file per visonarlo I file ricevuti in streaming non sono scritti su disco in quanto elaborati e presentati appena ricevuti, quindi scartati Streaming Media Vecchi concetti e nuove tecnologie Lo streaming multimediale non è nuovo è una forma di broadcast, ma aggiunge una molteplicità di media e caratteristiche di interattività (indicizzazione dei contenuti, hotspot cliccabili nelle immagini, avvio automatico di pagine web durante la riproduzione, ecc.) 4 Streaming Media Streaming: moda o opportunità ? 7 utenti Internet su 10 hanno dichiarato che “i siti web sono più piacevoli se comprendono più spesso suoni e video” (studio Arbitron/Edison Media Research in USA) Aziende importanti (Fujitsu, Hewlett Packard, ecc.) vedono crescere il ROI (Return Of Investment) delle loro iniziative di streaming Fonte Aberdeen Group: “L’introduzione dello streaming in HP ha incrementato l’efficacia e la ricchezza della sua comunicazione e ridotto in modo significativo i costi. Tale riduzione dei costi, che deriva essenzialmente dalla riduzione degli eventi dimostrativi e dei messaggi pubblicitari in radio e via satellite, è stata di circa 1.2 milioni di $ nel primo anno ed ha generato un ROI oltre il 1800% ripagandosi in un mese” 5 Streaming Media Come le aziende private usano lo streaming ? Invio di e-broadcast all’interno della propria organizzazione Realizzazione di presentazioni da remoto per i propri impiegati, clienti o partner Erogazione di formazione a distanza per la propria rete di distribuzione/vendita Erogazione di dimostrazioni pre-vendita a distanza Erogazione di servizi per i clienti Un esempio italiano: Enel.it 6 Notiziario giornaliero per le aziende del gruppo Presentazioni delle aziende del gruppo o di progetti in corso Formazione Servizi ai clienti delle aziende del gruppo Streaming Media Come gli Enti pubblici potrebbero usare lo streaming ? 7 Comunicazione arricchita diretta verso le varie articolazioni degli Enti Comunicazioni verso i cittadini/utenti (iniziative delle amministrazioni, novità, esempi di accesso ai servizi, ecc.) Formazione e/o qualificazione professionale a distanza delle proprie risorse umane ………….. Streaming Media Un po’ di tecnica: lo streaming e le tecnologie tradizionali L’accesso a contenuti multimediali è possibile anche con tecnologie tradizionali Download – i contenuti multimediali sono messi a disposizione su un web server da cui è possibile scaricarli Dowload progressivo o pseudo-streaming Permette la riproduzione prima che il file sia interamente scaricato Non consente di saltare in qualsiasi punto del contenuto multimediale Può perdere la sincronizzazione o soffrire di hang-up True streaming 8 Occorre terminare il download prima di poterli visionare Sono memorizzati sul disco locale La riproduzione è contestuale all’arrivo dei contenuti Dispone di controlli VCR ed è possibile saltare a qualunque punto del contenuto Supporta la riproduzione live e on-demand I contenuti sono codificati in diverse versioni ottimizzate per diversi data rate. Lo streaming server sceglie quale versione distribuire in fnzione delle caratteristiche del client e della banda che ha a disposizione. Streaming Media Come funziona lo streaming ? Web Server 1 – L’utente selezione un contenuto multimediale facendo una richiesta ad un Web server 2 – Il Web server inoltra la richiesta al media server Client 3 – Il media server invia in streaming il contenuto multimediale all’utente 4 – Il media player sulla postazione utente decodifica il contenuto multimediale in arrivo e lo presenta 9 Media Server Streaming Media Le architetture per lo streaming Una architettura è un sistema interdipendente costituito da varie componenti che lavorano insieme per ottenere certe funzionalità Una architettura di streaming comprende le metodologie di codifica e di trasmissione, il software server e i player (software client) 10 Le architetture più popolari sono: Real Media, Windows Media e QuickTime Sono tre standard paralleli non compatibili tra loro Alcuni Content Provider supportano tutti gli standard Streaming Media L’uso dello streaming Utenti di contenuti multimediali nell’anno 2000 suddivisi per player 30 QuickTime Windows Media RealMedia 25 20 15 10 5 0 7 milioni 7-13 milioni 20-28 milioni Gen-Dic 2000 Gen-Dic 2000 Gen-Dic 2000 Fonte: Dale Sorenson – Macintouch “Streaming Media Market Report 2001” 11 Streaming Media I formati dello streaming Il formato è semplicemente la struttura del file che è generato dalla particolare architettura attraverso i suoi codec Architettura 12 Formato nativo Estensione del file QuickTime Formato QuickTime .mov (.qt, .qti) RealMedia Formati RealMedia, RealAudio .rm, .ra WindoowsMedia Advanced Streaming Format, Windows Media Video/Audio .asf, .wmv, .wma Streaming Media La produzione di contenuti multimediali per lo streaming Cattura Montaggio Ripresa Riproduzione (on-demand) 13 Pubblicazione sullo streaming server Codifica Streaming Media La trasmissione live di eventi Cattura e codifica Media Server Videoregistratore Network Camera 2 Mixer video Camera 1 Client 14 Client Streaming Media I protocolli dello streaming: RTP I contenuti multimediali sono inviati dal server al client usando il protocollo RTP (Real Time Protocol) Il protocollo RTP si appoggia sul protocollo di trasporto non affidabile UDP Il suo compito principale è fare in modo che la sequenza temporale dei campioni digitali emessi delle sorgenti multimediali, siano rispettate in ricezione riducendo il jitter (variabilità dei ritardi) Campioni emessi dalla sorgente Campioni in arrivo senza RTP Campioni in arrivo con RTP 15 Streaming Media RTP 16 Obiettivi di progetto: flessibile fornisce meccanismi, non impone algoritmi istanziazioni per H261, MPEG1/2/... Indipendente dal protocollo UDP/IP, private ATM networks... Scalabile unicast, multicast, da 2 a Controllo dei dati separato alcune funzioni possono essere fatte dal protocollo di controllo della conferenza Streaming Media RTP Funzioni sui dati (RTP) Etichettatura del contenuto Timing 17 Identificazione della sorgente Individuazione della perdita Risequenzamento intra-media synchronization: rimuove il jitter con l’introduzioni di with buffer di playout inter-media synchronization: sincronizzazione labliale tra audiovideo Streaming Media RTP: uso tipico Normalmente 18 usa UDP (TCP non è adatto al real time) Porta UDP non fissata, ma negoziata Porta UDP per RTCP = porta UDP per RTP + 1 Normalmente viene gestito un solo media per sessione RTP (i.e. coppia di porte) Streaming Media RTP/RTCP: gestione del Tempo RTP time NTP time 19 offset iniziale random (per ogni stream) In ogni pacchetto è presente un RTP timestamp Il Timestamp è incrementato dal tempo speso dal pacchetto Tempo assoluto (usa il formato Network Time Protocol) NTP timestamp presente in ogni RTCP Sender Report Rende possibile la sincronizzazione inter-stream Streaming Media RTP header 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|X| CC |M| PT | sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | synchronization source (SSRC) identifier | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | contributing source (CSRC) identifiers | | .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | payload (audio, video...) | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ...| padding | count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 20 version (V) padding (P) extension (X) CSRC count (CC) marker (M) payload type (PT) Streaming Media RTP header... Sequence number Synchronization SouRCe (SSRC) Identifica univocamente la sorgente nella sessione Viene scelto randomicamente rivela e risolve le collisioni Contributing SouRCe (CSRC) e CC 21 Incrementato per ogni pacchetto RTP Usato da un mixer per identificare le sorgenti che concorrono alla formazione del flusso La dimensione di tale lista è data dal campo CSRC Count (CC) Streaming Media Mixer e Translator Mixer Combinano diversi flussi in un nuovo flusso singolo Usa un nuovo SSRC; gli SSRC originali sono nella lista CSRC Appare come una nuova sorgente Ottiene riduzione di banda Translator I vari flussi lo attraversano separatamente Conserva i SSRC originali Realizza la trasduzione di protocollo 22 Streaming Media Mixer Un mixer può cambiare il formato dei dati (codifica) e combiare più stream tra di loro in modo qualunque Esempio: mixer video (=MCU) end system 1 from ES1: SSRC=6 from ES2: SSRC=23 end system 2 23 mixer from M: SSRC=52 CSRC list={6, 23} end system 3 Streaming Media Translator I dati possono passare attraverso il traslatore intatti o possono essere codificati in modo diverso L’identità dei flussi rimane intatta Esempio: attraversamento di un firewall end system 1 from ES1: SSRC=6 from ES2: SSRC=23 end system 2 24 from ES1: SSRC=6 from ES2: SSRC=23 transl.1 transl.2 authorized tunnel firewall from ES1: SSRC=6 from ES2: SSRC=23 Streaming Media I protocolli dello streaming: RTSP IETF standard Real-Time Streaming Protocol Agisce come « network remote control » È un protocollo bidirezionale che può usare sia i servizi di comunicazione di TCP che quelli di UDP/RTP Supporta le seguenti operazioni 25 RFC 2326 reperimento di un contenuto multimediale da un server Invito di un server multimediale in una conferenza Registrazione di una conferenza Streaming Media RTSP È un protocollo text-based È indipendente dal protocollo di trasporto Supporta ogni sistema di descrizione della sessione (sdp, xml, etc.) Simile al protocollo HTTP con differenze 26 Richieste client server and server client server Mantiene un « session state » I dati sono trasportati fuori banda Lavora sia in unicast che in multicast Streaming Media Unicast vs Multicast Multi-Unicast 27 Multicast Streaming Media Unicast vs Multicast Multi-Unicast Ordine di N2/4 28 Multicast Ordine di N Streaming Media I metodi RTSP Metodi maggiori Metodi addizionali 29 SETUP: il server alloca risorse per lo stream ed inizia una sessione RTSP PLAY: avvia la trasmissione dei dati dello stream PAUSE: interrompe lo stream temporaneamente TEARDOWN: libera le risorse dello stream cancellando la sessione sul server OPTIONS: ANNOUNCE: DESCRIBE: prende i metodi disponibili Cambia la descrizione dell’oggetto multimediale prende la descrizione di basso livello dell’oggetto multimediale RECORD: Il server avvia la registrazione dello stream REDIRECT: Dirotta un client su un altro server SET_PARAMETER:imposta i parametri del codificatore o dei dispositivi Streaming Media Esempio: media on demand, unicast C client W A V media descr. web server audio server video server step 1: get description (in SDP format) step 2: open streams with RTSP step 3: play step 4: teardown 30 Streaming Media Esempio … HTTP GET presentation description (sdp) client C SETUP PLAY RTP audio/video RTCP TEARDOWN 31 web server W media servers A&V