Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni...

28
Streaming multimediale: tecniche e protocolli Corso di Applicazioni Telematiche A.A. 2009-10 Prof. Simon Pietro Romano Università degli Studi di Napoli Federico II Facoltà di Ingegneria

Transcript of Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni...

Page 1: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

Cos'è lo streaming?

• Trasferimento informazioni multimediali su rete• Una sorgente, più

destinazionidestinazioni

• Flussi multimediali codificati

• Vari protocolli• Multicast/Unicast

• P2P

Mhylow
Nota
RTP può essere usato anche per streaming, con il quale termine si intende un flusso di informazioni multimediali su una rete. Per streaming si intende usualmente 1 a molti destinatari.
Page 3: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

Unicast vs. Multicast

Con multicast mando un solo stream allo stesso gruppo di utenti...

... ma non posso fare adattamento dei contenuti, o VOD

Mhylow
Nota
c'è il server/generatore che manda il flusso una volta sola e i riceventi devono essere iscritti al gruppo di multicast per riceverlo. Non va bene se devo fare adatamento dei contenuti, se devo cioè adattarlo alle capability del destinatario (PC, cellulare,...) in più bisogna avere risorse specifiche della rete e ci sono problemi sui video on demand da riprodurre in istanti diversi -> preferiamo unicast per maggior controllo
Page 4: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

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

Mhylow
Nota
Funziona in modo simile al buffering di RTP: si costruisce un buffer in locale e quando è abbastanza grande da permettere una riproduzione fluida si comincia a decodificare dal buffer e si mostra all'utente (youtube).
Page 6: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

Mhylow
Nota
Al massimo torno indietro o pausa, se c'è caching
Page 7: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

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

Mhylow
Nota
ho pochi controlli sul flusso
Page 9: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

• HTTP per reperire il meta-file• RTSP/RTP per lo streaming

Scenario tipico

Mhylow
Nota
metafile via http (es per scaricare la uri del contenuto)
Page 11: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

Scenario tipico: messaggi

Mhylow
Nota
Si manda prima un messaggio option per vedere il server cosa supporta e poi uno di describe. I messaggi di setup indicano a quali flussi multimediali si è interessati (per riceverli via RTP), da cui si ottengono degli identificatori associati ai file; play indica al server di inviare i flussi sui canali RTP pattuiti (analogamente per pause,seek,...). Teardown è il bye della connessione RTP
Page 12: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

Mhylow
Nota
il payload della risposta alla describe è in SDP, nel quale si descrivono le varie tracce (codifiche) ed in particolare con "control" mi specifica la trackID del media a cui sono interessato. In SDP non c'è un porto (c'è 0) perchè descrivo solo il flusso multimediale (0=non creare nulla).
Mhylow
Nota
l'ID della traccia indica ad es video o audio ricevuti nella risposta alla describe. Il client non mette un SDP per specificare il flusso ma usa il tag TRANSPORT per specificare le sue volontà. Ora sto solo facendo negoziazione, non è ancora partita la richiesta di flusso. A questa il server risponde con un ok al setup e dà un tag Session, tramite il quale posso sincronizzare varie tracce. Nel prossimo Setup quindi il client manda lo stesso Setup per dire "a questa session aggiungi anche l'audio", e anche qui il server dà OK se tutto va bene. Infine il client manda il Play - dico solo TEST, specifico il Range per dire da dove parto e implicitamente dico che deve partire tutto quello pattuito prima coi setup.
Page 13: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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)

Mhylow
Nota
Il player flash in ambito mobile è poco diffuso e supportato, e accanto alla sua leggerezza RTSP è "ottimale" per dispositivi mobili.
Mhylow
Nota
maledetto napoli napoli in B!!
Page 14: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

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)

Mhylow
Nota
il well-known port di RTSP è 554
Mhylow
Nota
questa porta non è giusta, è quella RTSP nn quella telnet (23??)
Page 16: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

Mhylow
Nota
es call center con interazione via DTMF
Page 17: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

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)

Mhylow
Nota
un utente con un client sip.
Mhylow
Nota
risponde via sip e attacca il flusso multimediale al media server. L'app server manda ordini al mediaserver che comincia a mandare via rtp il flusso all'user (es mando il msg di benvenuto)
Page 19: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

Mhylow
Nota
aggiungo info di controllo all'interno di RTP nel contesto di una sessione SIP tramite DTMF.
Mhylow
Nota
codifica i toni come pacchetti speciali e non come audio base
Page 20: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

Scenari tipici

Page 22: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

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

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

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

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

Mhylow
Nota
lancio ad es sopcaast, entra in p2p e scambia pacchetti con gli altri utenti, ma a me utente voglio solo vedere il file, e quindi tale applicazione crea un server http in locale, e ci fanno collegare a questo in locale per fare un http progressivo, dietro al quale c'è lo scambio via p2p.
Page 27: Corso di Applicazioni Telematiche - UniNa STiDuEunina.stidue.net/Applicazioni Telematiche/Materiale...Real Time Streaming Protocol • Standard IETF per streaming multimediale ...

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

Domande?

2828