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/