Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni...
Transcript of Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni...
![Page 1: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/html5/thumbnails/1.jpg)
Corso di Applicazioni TelematicheA.A. 2010-11
Prof. Simon Pietro Romano
Università degli Studi di Napoli Federico II
Facoltà di Ingegneria
Streaming multimediale:
tecniche e protocolli
![Page 2: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/html5/thumbnails/2.jpg)
Cos'è lo streaming?
• Trasferimento
informazioni
multimediali su rete
• Una sorgente, più
destinazioni
• Flussi multimediali
codificati
• Vari protocolli
• Multicast/Unicast
• P2P
![Page 3: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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
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: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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
• 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: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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, ...)
• Live
• Sorgente è webcam, telecamera, screencast, ...
• Va compresso in tempo reale e poi trasmesso (ritardi)
• Justin.tv, Ustream, SopCast, ...
• Nessun controllo sulla riproduzione
![Page 7: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/html5/thumbnails/7.jpg)
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, ...
![Page 8: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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
• 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
![Page 9: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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
• Protocollo testuale, header+payload
• Meccanismo richiesta/risposta
• Negoziazione mediante SDP o SMIL
• In realtà, negoziazione “ibrida” (header “Transport”)
• Trasferimento effettivo mediante RTP
![Page 10: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/html5/thumbnails/10.jpg)
• HTTP per reperire il meta-file
• RTSP/RTP per lo streaming
Scenario tipico
![Page 11: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/html5/thumbnails/11.jpg)
Scenario tipico: messaggi
![Page 12: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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
• 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: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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, ...
• 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: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/html5/thumbnails/14.jpg)
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/
• ...
![Page 15: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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
• Clientvlc rtsp://localhost:5554/Test
(oppure mplayer rtsp://localhost:5554/Test)
(http://www.videolan.org/doc/streaming-howto/en/ch05.html)
![Page 16: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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
• Applicazioni convergenti dinamiche
• Utenti usano SIP/RTP
• Interazione mediante toni DTMF
• Tipici scenari
• Call center, conferencing, recording, streaming, ...
![Page 18: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/html5/thumbnails/18.jpg)
Application
Server
Media
Server
User
Agent
User
Signaling
(e.g. SIP) SIP
(Media
Dialog)
RTP/SRTP
TCP/TLS
(Control
Channel)
SIP
(Control
Dialog)
Modello architetturale
![Page 19: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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
• Segnale audio
• Messaggio SIP INFO
• Pacchetto RTP
• 101 telephone-event (SDP)
• Payload type 101
![Page 20: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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, ...
• Embedding di ShockWaveFlash (SWF) in HTML
• Concepito per lo streaming
• Audio (MP3)
• Video (Flash Video)
• Controlli (Action Message Format)
![Page 21: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/html5/thumbnails/21.jpg)
Scenari tipici
![Page 22: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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
• 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: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/html5/thumbnails/23.jpg)
Tipici utilizzi di Red5
• WebTV
• Video On Demand
• Conferencing (chat, audio, video, lavagne, ...)
• ...
![Page 24: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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()
• streamSubscriberStart() e streamSubscriberStop()
• ...
• Astrazione connessioni e stream
• Varie applicazioni di esempio
• Player, recorder, broadcaster/subscriber, ecc.
![Page 25: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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)
• 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: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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
• Utente si collega ai peer per ricevere/mandare
• Quasi tutte creano lato client
backend HTTP
• Semplice streaming
HTTP progressivo
![Page 27: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/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
• 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: Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università](https://reader035.fdocument.pub/reader035/viewer/2022062919/5edf4692ad6a402d666a9f9c/html5/thumbnails/28.jpg)
2828
Domande?