corso di applicazioni telematiche - unina stidueunina.stidue.net/applicazioni...
TRANSCRIPT
![Page 1: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/1.jpg)
Streaming multimediale:tecniche e protocolli
Corso di Applicazioni TelematicheA.A. 2009-10
Prof. Simon Pietro Romano
Università degli Studi di Napoli Federico II
Facoltà di Ingegneria
![Page 2: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/2.jpg)
Cos'è lo streaming?
• Trasferimento informazioni multimediali su rete• Una sorgente, più
destinazionidestinazioni
• Flussi multimediali codificati
• Vari protocolli• Multicast/Unicast
• P2P
![Page 3: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/3.jpg)
Unicast vs. Multicast
Con multicast mando un solo stream allo stesso gruppo di utenti...
... ma non posso fare adattamento dei contenuti, o VOD
![Page 4: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/4.jpg)
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 • 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?
![Page 5: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/5.jpg)
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 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
![Page 6: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/6.jpg)
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, ...)• 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
![Page 7: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/7.jpg)
Protocolli
• Innumerevoli soluzioni per lo streaming• Molte soluzioni, povera interoperabilità
• Spesso necessari client/server stesso produttore
• Standard• HTTP, HTML5, RTSP, SIP• HTTP, HTML5, RTSP, SIP
• Proprietari• MMS (Microsoft), RTMP (Adobe), ...
• Protocolli P2P• PPStream, SopCast, TVAnts, StreamTorrent, ...
![Page 8: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/8.jpg)
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• 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-03
![Page 9: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/9.jpg)
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• 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
![Page 10: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/10.jpg)
• HTTP per reperire il meta-file• RTSP/RTP per lo streaming
Scenario tipico
![Page 11: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/11.jpg)
Scenario tipico: messaggi
![Page 12: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/12.jpg)
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• 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
![Page 13: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/13.jpg)
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, ...• 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)
![Page 14: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/14.jpg)
Implementazioni RTSP
• FFserver/FFplay (client/server)• http://www.ffmpeg.org
• VLC (client/server)• http://www.videolan.org
• Darwin Streaming Server• Darwin Streaming Server• http://developer.apple.com/opensource/server/streaming/
• Java Media Framework (JMF)• http://java.sun.com/javase/technologies/desktop/media/jmf/
• ...
![Page 15: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/15.jpg)
Esempio RTSP (VideoLAN)
• Servervlc --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> setup Test input myvideo.mpg
• Clientvlc rtsp://localhost:5554/Test(oppure mplayer rtsp://localhost:5554/Test)
(http://www.videolan.org/doc/streaming-howto/en/ch05.html)
![Page 16: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/16.jpg)
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, ...
![Page 17: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/17.jpg)
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• Media Server controllabile via SIP• Applicazioni convergenti dinamiche
• Utenti usano SIP/RTP
• Interazione mediante toni DTMF
• Tipici scenari• Call center, conferencing, recording, streaming , ...
![Page 18: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/18.jpg)
ApplicationApplicationServerServer
UserSignaling(e.g. SIP) SIP TCP/TLS
SIP(ControlDialog)
Modello architetturale
MediaMediaServerServer
UserUserAgentAgent
(e.g. SIP) SIP(Media
Dialog)
RTP/SRTP
TCP/TLS(ControlChannel)
![Page 19: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/19.jpg)
Interazione mediante DTMF
• Dual-tone Multi-Frequency
• Permette interazione tra UAC e UAS• e.g. 4=RW, 6=FF
• Vari metodi di trasporto• Vari metodi di trasporto• Segnale audio
• Messaggio SIP INFO
• Pacchetto RTP• 101 telephone-event (SDP)
• Payload type 101
![Page 20: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/20.jpg)
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, ...• YouTube, MySpace, Justin.tv, ...
• Embedding di ShockWaveFlash (SWF) in HTML
• Concepito per lo streaming• Audio (MP3)
• Video (Flash Video)
• Controlli (Action Message Format)
![Page 21: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/21.jpg)
Scenari tipici
![Page 22: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/22.jpg)
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• 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
![Page 23: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/23.jpg)
Tipici utilizzi di Red5
• WebTV
• Video On Demand
• Conferencing (chat, audio, video, lavagne, ...)
• ...• ...
![Page 24: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/24.jpg)
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()• connect()/appConnect() e disconnect()/appDisconnect()
• streamSubscriberStart() e streamSubscriberStop()
• ...
• Astrazione connessioni e stream
• Varie applicazioni di esempio• Player, recorder, broadcaster/subscriber, ecc.
![Page 25: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/25.jpg)
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)• 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
![Page 26: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/26.jpg)
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• Server tracker come indice dei peers per uno stream
• Utente si collega ai peer per ricevere/mandare
• Quasi tutte creano lato clientbackend HTTP
• Semplice streamingHTTP progressivo
![Page 27: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/27.jpg)
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• 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
![Page 28: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale](https://reader035.vdocumenti.com/reader035/viewer/2022081607/5edf4692ad6a402d666a9f9d/html5/thumbnails/28.jpg)
Domande?
2828