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

Streaming multimediale: tecniche e protocolliunina.stidue.net/Applicazioni Telematiche/Materiale...Corso di Applicazioni Telematiche A.A. 2010-11 Prof. Simon Pietro Romano Università

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

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à

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à

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à

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à

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à

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à

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à

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à

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à

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à

• 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à

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à

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à

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à

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à

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à

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à

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à

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à

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à

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à

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à

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à

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à

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à

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à

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à

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à

2828

Domande?