Corso di Applicazioni Telematiche
Transcript
Streaming multimediale: tecniche e protocolli Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos'è lo streaming? • Trasferimento informazioni multimediali su rete • Una sorgente, più destinazioni • Flussi multimediali codificati • Vari protocolli • Multicast/Unicast • P2P Unicast vs. Multicast Con multicast mando un solo stream allo stesso gruppo di utenti... ... ma non posso fare adattamento dei contenuti, o VOD Strategie di trasferimento (1) • File transfer • La riproduzione può iniziare solo al termine del trasferimento del file • Ritardo proporzionale alla dimensione del file • E' necessaria una adeguata capacità di memorizzazione (su memoria di massa) da parte del ricevitore • Soluzione idonea solo per documenti di piccole dimensioni (audio-clip e/o video-clip) • Assolutamente inadatto per informazioni live • Non c'è un file pre-registrato, qual è la dimensione? Strategie di trasferimento (2) • Streaming (riproduzione progressiva) • Il ricevitore memorizza l’informazione ricevuta in un buffer (playout buffer) che viene continuamente alimentato dai dati ricevuti dalla rete e svuotato progressivamente • La riproduzione può iniziare non appena il buffer si è “sufficientemente” riempito • Il ricevitore non deve memorizzare l’intero file • La qualità della riproduzione può degradare se la rete non mantiene la continuità temporale del flusso di informazioni trasmesso dalla sorgente Tipologie di streaming • On-demand • Sorgente è un file pre-registrato • Già compresso (solitamente), va solo trasmesso • YouTube, Megavideo, Google video, ... • Possibilità di controllare il video (seeking, pause, ...) • Live • Sorgente è webcam, telecamera, screencast, ... • Va compresso in tempo reale e poi trasmesso (ritardi) • Justin.tv, Ustream, SopCast, ... • Nessun controllo sulla riproduzione Protocolli • Innumerevoli soluzioni per lo streaming • Approcci diversi, scarsa interoperabilità • Spesso necessari client/server dello stesso produttore • Standard • HTTP, HTML5, RTSP, SIP • Proprietari • MMS (Microsoft), RTMP (Adobe), ... • Protocolli P2P • PPStream, SopCast, TVAnts, StreamTorrent, ... HTTP multimedia streaming • Modo più semplice di fare streaming • Solo on-demand, non live • Download o riproduzione con buffering • Supportato praticamente da tutti • Proposta Apple per HTTP Live Streaming • Stream diviso in tanti piccoli download • Stream alternativi per rate diversi • Attualmente supportato in iPhone e Quicktime • Proposto come standard IETF • http://tools.ietf.org/html/draft-pantos-http-live-streaming-06 Real Time Streaming Protocol • Standard IETF per streaming multimediale • http://www.ietf.org/rfc/rfc2326.txt • Consente al client di controllare riproduzione • Pause, Rewind, Fast Forward, ... • Simile ad HTTP e SIP • Protocollo testuale, header+payload • Meccanismo richiesta/risposta • Negoziazione mediante SDP o SMIL • In realtà, negoziazione “ibrida” (header “Transport”) • Trasferimento effettivo mediante RTP Scenario tipico • HTTP per reperire il meta-file • RTSP/RTP per lo streaming Scenario tipico: messaggi Metodi RTSP • • • • • • • • • • OPTIONS get available methods SETUP establish transport ANNOUNCE change description of media object DESCRIBE get (low-level) description of media object PLAY start playback, reposition RECORD start recording REDIRECT redirect client to new server PAUSE halt delivery, but keep state SET PARAMETER device or encoding control TEARDOWN remove state Chi usa RTSP? • Non diffusissimo in ambiente desktop • Attualmente è preferito RTMP (Flash video) • Supporto in svariati client (VLC, Mplayer, ...) • Molto diffuso in ambito mobile • Android, Blackberry, ... • Supporto nativo in J2ME • Utilizzato da YouTube per sito mobile • Esempio – http://www.youtube.com/watch?v=dlj1DW0IW7Y (RTMP) » vs. – http://m.youtube.com/watch?v=dlj1DW0IW7Y (RTSP) Implementazioni RTSP • FFserver/FFplay (client/server) • http://www.ffmpeg.org • VLC (client/server) • http://www.videolan.org • Darwin Streaming Server • http://developer.apple.com/opensource/server/streaming/ • Java Media Framework (JMF) • http://java.sun.com/javase/technologies/desktop/media/jmf/ • ... Esempio RTSP (VideoLAN) • Server vlc --ttl 12 -vvv --color -I telnet --telnet-password pippo –rtsp-host 0.0.0.0:5554 telnet localhost 5554 > new Test vod enabled > setup Test input myvideo.mpg • Client vlc rtsp://localhost:5554/Test (oppure mplayer rtsp://localhost:5554/Test) (http://www.videolan.org/doc/streaming-howto/en/ch05.html) Perché non SIP? • SIP permette la negoziazione di sessioni multimediali • Usa SDP ed RTP, come RTSP • Può essere usato per streaming monodirezionale • Accesso mediante semplice telefono SIP • Problema... • ... di per sé non permette controllo riproduzione! • Buono per streaming live, non on-demand • Come implementare interazione? • Applicazioni SIP dinamiche • Toni DTMF, Instant Messaging, HTTP, ... Un possibile approccio: MEDIACTRL • Media Server Control (MEDIACTRL) • Working Group IETF ancora attivo • Molti contributi dallo stesso gruppo COMICS • http://mediactrl.sf.net/ • Media Server controllabile via SIP • Applicazioni convergenti dinamiche • Utenti usano SIP/RTP • Interazione mediante toni DTMF • Tipici scenari • Call center, conferencing, recording, streaming, ... Modello architetturale Application Server User Signaling (e.g. SIP) User Agent SIP (Media Dialog) RTP/SRTP SIP (Control Dialog) TCP/TLS (Control Channel) Media Server Interazione mediante DTMF • Dual-tone Multi-Frequency • Permette interazione tra UAC e UAS • e.g. 4=RW, 6=FF • Vari metodi di trasporto • Segnale audio • Messaggio SIP INFO • Pacchetto RTP • 101 telephone-event (SDP) • Payload type 101 Real Time Messaging Protocol (RTMP) • Protocollo proprietario di Adobe System • Non aperto, né standard... • ... ma quasi uno standard de-facto • Molto utilizzato in ambito web • YouTube, MySpace, Justin.tv, ... • Embedding di ShockWaveFlash (SWF) in HTML • Concepito per lo streaming • Audio (MP3) • Video (Flash Video) • Controlli (Action Message Format) Scenari tipici Un server RTMP open source: Red5 • http://red5.org • Alternativa a Flash Media Server • Varie funzionalità • Supporto RTMP (reverse engineering) • Streaming (live/on-demand) e Recording • Supporto FLV, H.264, AAC, MP3 • Scritto in Java • Multipiattaforma (Windows, Linux, Mac) • Semplice creare nuove applicazioni lato server • Lato client implementato in ActionScript Tipici utilizzi di Red5 • • • • WebTV Video On Demand Conferencing (chat, audio, video, lavagne, ...) ... Applicazioni Red5 • Approccio simile ad HTTP Servlet • Application Server con WAR in webapps/ • Overriding metodi per implementazione • • • • start()/appStart() e stop()/appStop() connect()/appConnect() e disconnect()/appDisconnect() streamSubscriberStart() e streamSubscriberStop() ... • Astrazione connessioni e stream • Varie applicazioni di esempio • Player, recorder, broadcaster/subscriber, ecc. Estendere Red5: Xuggle • Red5 è solo uno “smistatore” • Collega stream fra loro senza transcodificare • Non è possibile adattamento contenuti • Xuggle (http://www.xuggle.com/) • Wrapper Java a librerie FFmpeg (JNI) • Diffusissime librerie di transcodifica scritte in C • Supporto FLV/MP3 (se compilato) • Si possono adattare gli stream prima di smistarli... • ... o crearne di nuovi, da file/rete/ecc. • Attualmente usato da noi per gateway SIP/RTMP Streaming Peer-to-Peer • Stream redistribuito in tempo reale in rete P2P • Ogni utente manda agli altri ciò che riceve • Molte soluzioni esistenti • Quasi tutte si ispirano a BitTorrent, ma real-time • Server tracker come indice dei peers per uno stream • Utente si collega ai peer per ricevere/mandare • Quasi tutte creano lato client backend HTTP • Semplice streaming HTTP progressivo Problematiche • Adatto solo per broadcasting • Tutti ricevono/mandano stesso stream live • Nessuna possibilità di controllo o adattamento • Molto sensibile a numero/qualità dei peer • Non c'è rate costante o affidabile • Innumerevoli soluzioni non interoperabili • IETF sta pensando ad uno standard... • Peer-to-peer Streaming Protocol (PPSP) • http://datatracker.ietf.org/wg/ppsp/charter/ • ... ma siamo ancora lontani Domande? 28
Documenti analoghi
Multimedia Multimedia Istruzioni Pratiche per l`uso GARR WS8
Definito opzionale nello standard ma essenziale nella pratica:
Gestione di una zona (ovvero delle entità H.323 ad esso registrati);
Registrazione di endpoint;
Traslazione degli indirizzi: (H323ID e...
Real Time Streaming Protocol - Wikipedia
Una richiesta di PLAY genererà la riproduzione di uno o più flussi multimediali utilizzando il meccanismo specificato nella richiesta di SETUP precedente. Le
richieste di Play possono essere impila...
Elaborato Festa Fabio N46000384
possono includere nei servizi di Web TV. I servizi televisivi disponibili tramite la Web TV
si basano quindi su un modello aperto e fruibili anytime e anywhere.
1.2.1 Modalità on demand
La TV on de...
televisione digitale soluzione di streaming per internet a banda larga
più spesso e per scopi sempre più vari. È una tecnologia innovativa che è destinata a far parte
della nostra vita quotidiana in misura sempre maggiore, grazie anche all’enorme diffusione di
interne...