Streaming Media Ing. Maurizio Vitale 24/09/2003 © 2003
Livello di interazione Introduzione Comunicazione multimediale il contenuto informativo risiede in più media (dati, voce, video, ecc.) Videocomunicazione - classificazione: uno a molti monodirezionale (broadcast o on-demand) uno a molti bidirezionale (interazione tra uditori e parlatore) molti a molti (videoconferenza) Uno a molti Broadcast On Demand Streaming Webcasting con feedback Molti a molti Real time Livello di interazione BASSO ALTO
Streaming Tecnologia emergente 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
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.)
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”
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 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
Come gli Enti pubblici potrebbero usare lo streaming ? 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 …………..
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 Occorre terminare il download prima di poterli visionare Sono memorizzati sul disco locale 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 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.
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 Media Server
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) 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
L’uso dello streaming Utenti di contenuti multimediali nell’anno 2000 suddivisi per player 5 10 15 20 25 30 QuickTime Windows Media RealMedia 20-28 milioni 7-13 milioni 7 milioni Gen-Dic 2000 Fonte: Dale Sorenson – Macintouch - “Streaming Media Market Report 2001”
I formati dello streaming Il formato è semplicemente la struttura del file che è generato dalla particolare architettura attraverso i suoi codec Architettura 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
La produzione di contenuti multimediali per lo streaming Cattura Montaggio Ripresa Riproduzione (on-demand) Pubblicazione sullo streaming server Codifica
La trasmissione live di eventi Cattura e codifica Media Server Camera 2 Mixer video Network Videoregistratore Camera 1 Client Client
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
RTP 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
RTP Funzioni sui dati (RTP) Etichettatura del contenuto Timing Identificazione della sorgente Individuazione della perdita Risequenzamento Timing intra-media synchronization: rimuove il jitter con l’introduzioni di with buffer di playout inter-media synchronization: sincronizzazione labliale tra audio-video
RTP: uso tipico Normalmente 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)
RTP/RTCP: gestione del Tempo RTP time offset iniziale random (per ogni stream) In ogni pacchetto è presente un RTP timestamp Il Timestamp è incrementato dal tempo speso dal pacchetto NTP time Tempo assoluto (usa il formato Network Time Protocol) NTP timestamp presente in ogni RTCP Sender Report Rende possibile la sincronizzazione inter-stream
RTP header version (V) CSRC count (CC) padding (P) marker (M) 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 | version (V) CSRC count (CC) padding (P) marker (M) extension (X) payload type (PT)
RTP header... Sequence number Synchronization SouRCe (SSRC) Incrementato per ogni pacchetto RTP Synchronization SouRCe (SSRC) Identifica univocamente la sorgente nella sessione Viene scelto randomicamente rivela e risolve le collisioni Contributing SouRCe (CSRC) e CC 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)
Mixer e Translator Mixer Translator 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
Mixer end system 1 mixer end system 3 end system 2 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 end system 2 mixer end system 3 from ES1: SSRC=6 from ES2: SSRC=23 from M: SSRC=52 CSRC list={6, 23}
Translator end system 1 end system 2 transl.1 transl.2 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 end system 2 transl.1 from ES1: SSRC=6 from ES2: SSRC=23 transl.2 authorized tunnel firewall
I protocolli dello streaming: RTSP IETF standard RFC 2326 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 reperimento di un contenuto multimediale da un server Invito di un server multimediale in una conferenza Registrazione di una conferenza
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 Richieste client server and server client server Mantiene un « session state » I dati sono trasportati fuori banda Lavora sia in unicast che in multicast
Unicast vs Multicast Multi-Unicast Multicast
Unicast vs Multicast Multi-Unicast Multicast Ordine di N2/4
I metodi RTSP Metodi maggiori Metodi addizionali 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 Metodi addizionali OPTIONS: prende i metodi disponibili ANNOUNCE: Cambia la descrizione dell’oggetto multimediale DESCRIBE: 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
Esempio: media on demand, unicast W A V C media descr. web server audio server video server client step 1: get description (in SDP format) step 2: open streams with RTSP step 3: play step 4: teardown
Esempio … HTTP GET web server W presentation description (sdp) SETUP client C HTTP GET presentation description (sdp) web server W SETUP media servers A & V PLAY RTP audio/video RTCP TEARDOWN