D Video on Demand - Verteilte Systeme

Werbung
1 RTSP
■ Real-Time Streaming Protocol (RTSP)
■ IETF Standard
◆ definiert in RFC 2326 (1998)
■ Zielsetzung
D Video on Demand
◆ Signalisierung und Kontrolle von multimedialen Datenströmen
• Aufbau, Abbruch von Sitzungen
• z.B. Audio, Video
• z.B. Life-Sendungen, On-Demand-Streaming, Videorekorderfunktion
• Unterstützung von Unicast und Multicast
◆ Unabhängigkeit vom Transport multimedialer Daten
• typisch: Nutzung von RTP
D.1
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
1 RTSP (2)
D.2
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
1.1 RTSP-URI
■ Aufbau
■ URI-Schema
◆ textbasiert ähnlich wie HTTP oder SIP
◆ beginnt mit „rtsp:“
◆ Aufbau wie HTTP-URI
• „lesbares“ Protokoll
◆ leichtgewichtig
• Benutzername, Rechnername, Portnummer, Pfad auf Server
• basiert typischereise auf TCP/IP
• z.B. rtsp://[email protected]:554/videos/matrix
• auch UDP/IP möglich
■ Zweck
■ Zugang
◆ eindeutige Identifikation Medienströmen auf einem Server
◆ Default Port 554
◆ z.B. VoD
• Angebot eines Films auf einem Server
D.3
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
D.4
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
1.2 Protokollablauf
1.3 Einfacher Sitzungsverlauf
■ Unterscheidung von Client und Server
■ Signalisierung eines VoD-Abrufs
◆ Client
◆ Client will Video ansehen
• initiiert Sitzung
Client
• z.B. Video-on-Demand
Server
◆ Server
SETUP rtsp://....
• wartet auf Clients-Anfragen
200 OK
■ Anfrage-Antwort-Schema
PLAY rtsp://....
◆ ähnlich wie HTTP und SIP
200 OK
◆ typisch: Client fragt bei Server an
RTP-Session
• aber auch Server kann Anfrage an Client stellen
TEARDOWN rtsp://....
200 OK
D.5
D.6
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
1.3 Einfacher Sitzungsverlauf (2)
1.3 Einfacher Sitzungsverlauf (3)
■ Kontaktadresse RTSP
◆ Beispiel der Antwort
◆ IP-Adresse und Portnummer über RTSP-URI bekannt
RTSP/1.0 200 OK
CSeq: 302
Date: 23 Jan 1997 15:35:06 GMT
Session: 47112344
Transport: RTP/AVP;unicast;
client_port=4588-4589;server_port=6256-6257
■ SETUP-Anfrage
◆ Einrichten einer Client-Server-Sitzung
• erfordert Zustand in Client und Server
◆ Angabe von Transportinformationen
■ Antwortzeile
◆ Beispiel der Anfrage:
◆ Statuscodes wie bei HTTP oder SIP
SETUP rtsp://vs.informatik.uni-ulm.de/videos/matrix RTSP/1.0
CSeq: 302
Transport: RTP/AVP;unicast;client_port=4588-4589
■ Kopfzeilen
◆ CSeq: eindeutige Zuordnung von Antwort an Anfrage
• zufälliger erster Wert, sonst inkrementiert
◆ Session: eindeutige Zuordnung zu einer Sitzung
• wird bei jeder Folgeanfrage zur Sitzung mitgesendet
◆ Transport: Beschreibung der Transportparameter
D.7
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
• hier: RTP mit AVP-Profil, Unicast-Modus, Ports für RTP und RTCP
D.8
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
1.3 Einfacher Sitzungsverlauf (4)
1.3 Einfacher Sitzungsverlauf (5)
■ PLAY-Anfrage
■ Header (fortges.)
◆ startet Senden des Datenstroms bzw. der Datenströme
◆ smpte = Timecode für Synchronisierung
◆ Beispiel Anfrage:
• SMPTE = Society of Motion Picture and Television Engineers
• Adressierung von Frames und Subframes in einem Video
PLAY rtsp://vs.informatik.uni-ulm.de/videos/matrix RTSP/1.0
CSeq: 303
Session: 47112344
Range: npt=0-
• mögliche Formate (Beispiele):
01:23:10:00.0-01:23:10:59:24.1 eine Sekunde von 1h 23m 10s an
(zwei Halbbilder/Subbframes pro
Frame)
■ Header
• Typen: smtpe (30 Frames/s), smtpe-25 (25 Frames/s),
smpte-30-drop (29,97 Frames/s)
◆ Range: Angabe der Ausspielzeitpunkte
◆ npt = Normal Play Time
◆ clock = Absolute Zeitangabe
• bezieht sich auf absolute Zeit z.B. im Video
• mögliche Formate (Beispiele):
150-180
von Sekunde 150 bis Sekunde 180 im Video
1:23:10.1ab Zeitpunkt 1h 23min 10,1s im Video
• ISO 8601 Zeitstempel
• Beispiel: 20061122T080930.25Z
– 08:09 Uhr und 30,25 s am 22.11.2006 UTC-Zeit (entspricht GMT)
D.9
• wird beispielsweise für Lifesendungen oder Aufnahmen benötigt
D.10
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
1.3 Einfacher Sitzungsverlauf (6)
1.3 Einfacher Sitzungsverlauf (7)
■ Antwort auf PLAY
■ Zustandsautomat
RTSP/1.0 200 OK
CSeq: 303
Date: 23 Jan 1997 15:35:06 GMT
Range: npt=0-
SETUP
INIT
PLAY
READY
TEARDOWN
■ TEARDOWN-Transaktion
◆ Anfrage
PLAYING
PAUSE
TEARDOWN
TEARDOWN rtsp://vs.informatik.uni-ulm.de/videos/matrix RTSP/1.0
CSeq: 304
Session: 47112344
◆ angenommene Zustände in einem RTSP-Server in Abhängigkeit der Anfragen
◆ Antwort
RTSP/1.0 200 OK
CSeq: 304
D.11
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
D.12
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
1.4 Sitzungsbeschreibung
1.4 Sitzungsbeschreibung (2)
■ Bisherige Annahme
• Beispiel Antwort
◆ Parameter der Datenströme mehr oder weniger bekannt
RTSP/1.0 200 OK
CSeq: 300
Date: 23 Jan 1997 15:35:06 GMT
Content-Type: application/sdp
Content-Length: 286
• Transportparameter können bei SETUP konfiguriert werden
■ Sitzungsbeschreibung
◆ Vorgabe von außen
v=0
o=vod 2890844526 2890842807 IN IP4 126.16.64.4
s=Matrix der Film
c=IN IP4 126.16.64.4
a=recvonly
m=audio 4588 RTP/AVP 0
m=video 4590 RTP/AVP 31
• z.B. SDP-Datei zum Download
◆ Inspektion durch Client
• DESCRIBE Anfrage an Server
• Beispiel
PLAY rtsp://vs.informatik.uni-ulm.de/videos/matrix RTSP/1.0
CSeq: 300
Accept: application/sdp
D.13
D.14
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
1.5 Anfragen
1.6 Ausspieloptionen
■ Zuordnung von Antwort zu Anfrage durch CSeq-Zeile
■ Weitere Kopfzeilen für PLAY-Anfragen
◆ Unterbrechung und Wiederaufnahme der TCP-Verbindung unschädlich
◆ Scale: Einstellung der Abspielgeschwindigkeit
• z.B. Scale: 2.0 Abspielen eines Videos in doppelter Geschwindigkeit
• auch UDP-Nachrichten möglich
– erfordert Datensicherung durch Wiederholung nach Timeout
• z.B. Scale: 0.5 Abspielen in Zeitlupe (halbe Geschwindigkeit)
◆ Durchmischung der Anfragen und Antworten erlaubt
• z.B. Scale: -1 Rückwärts abspielen
• z.B. PLAY-Anfragen werden gestapelt und sukzessive abgearbeitet
◆ Speed: Einstellung der Datenmenge
• Änderungen von Scale führen nicht zur Veränderung der Datenmenge
• Speed beeinflusst Datenmenge
• z.B. Scale: 2.0 und Speed: 2.0doppelte Abspielgeschwindigkeit, aber
auch doppelte Datenrate, d.h. keine Informationsverluste
D.15
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
D.16
© 2006-2007, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2006w-MMK-D-VoD.fm, 2006-11-22 08.08] http://www-vs.informatik.uni-ulm.de/teach/ws06/mmk/
Herunterladen