Corso di Applicazioni Telematiche

Transcript

Corso di Applicazioni Telematiche
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

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...

Dettagli

Real Time Streaming Protocol - Wikipedia

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...

Dettagli

Elaborato Festa Fabio N46000384

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...

Dettagli

televisione digitale soluzione di streaming per internet a banda larga

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...

Dettagli