Appendix C: Use of SDP for RTSP Session Descriptions (SDP für RTSP-Sitzungsbeschreibungen)
Appendix C: Use of SDP for RTSP Session Descriptions (SDP für RTSP-Sitzungsbeschreibungen)
Das Session Description Protocol (SDP, RFC 2327 [6]) kann Ströme oder Präsentationen in RTSP beschreiben, beschränkt auf Zugangswege und Kodierungen.
Aggregierte Steuerung : Präsentation mit Strömen von einem oder mehreren Servern ohne aggregierte Steuerung ; Beschreibung typischerweise per HTTP oder anderem Nicht-RTSP, ggf. mit ANNOUNCE.
Nicht-aggregierte Steuerung : mehrere Ströme eines Servers mit aggregierter Steuerung ; Beschreibung typisch als DESCRIBE-Antwort auf eine URL oder per ANNOUNCE.
Dieser Anhang erläutert, wie eine per HTTP bezogene SDP-Datei das RTSP-Sitzungsverhalten bestimmt und wie Clients SDP in DESCRIBE-Antworten interpretieren. SDP erlaubt ohne menschliche Hilfe keine Unterscheidung zwischen gleichzeitig darzustellenden Strömen und Alternativmengen (z. B. zwei Audiostreams in verschiedenen Sprachen).
C.1 Definitions
Begriffe „session-level“, „media-level“ und Attributnamen/-werte wie in SDP (RFC 2327 [6]).
C.1.1 Control URL
Attribut a=control: überträgt die Steuer-URL (Session und Medien). Auf Medienebene : URL des Streams ; auf Sessionebene : URL für aggregierte Steuerung.
Beispiel : a=control:rtsp://example.com/foo
Relative oder absolute URLs gemäß RFC 1808 [25]. Basissuche : RTSP Content-Base, Content-Location, Anfrage-URL. Nur Stern : leere eingebettete URL, erbt volle Basis.
C.1.2 Media streams
Feld m= listet Ströme ; Synchronisation erwartet. Unicast : Port als Empfehlung ; Client in SETUP, kann ignorieren. Ohne Präferenz SOLLTE Server Port 0 setzen.
C.1.3 Payload type(s)
In m= angegeben. Statischer Typ RFC 1890 [1] : keine weiteren Angaben. Dynamisch : rtpmap. Kodierungsnamen RFC 1890 Abschn. 5–6 oder experimentell „X-“ in SDP. Codec-Parameter in fmtp. Registrierung : RFC 1890 [1]. Ungeeignet für RTP/AVP : neues Profil und Profilname in m=.
C.1.4 Format-specific parameters
fmtp ; syntaxspezifisch ; Paketintervall über ptime.
C.1.5 Range of presentation
a=range : gesamter Zeitbereich der gespeicherten Sitzung (Live : aus t und r). Session-Level, außer unterschiedliche Streamdauern. Einheit dann Wert (Abschn. 3.5–3.7).
C.1.6 Time of availability
t= MUSS passende Start-/Stoppzeiten für aggregierte und nicht-aggregierte Steuerung enthalten. Aggregiert : Server SOLL Stopp garantiert gültig und Start nicht nach DESCRIBE anzeigen ; KANN 0,0 für immer verfügbar. Nicht-aggregiert : tatsächlicher Verfügbarkeitszeitraum nach SDP, nicht abhängig von Webseitenlebensdauer.
C.1.7 Connection Information
c= Zieladresse in SDP ; On-Demand-Unicast und manche Multicast : Ziel per SETUP. Ohne feste Adresse Nullwert ; IP4 : 0.0.0.0.
C.1.8 Entity Tag
Optionales a=etag : Version der Beschreibung (opaque). SETUP mit If-Match (12.22), nur bei Übereinstimmung mit aktueller Beschreibung.
o= ähnlich, bindet Server mit mehreren Beschreibungstypen stärker.
C.2 Aggregate Control Not Available
Ohne aggregierte Steuerung und mehrere Medienabschnitte MUSS jeder Abschnitt a=control: mit URL haben.
Beispiel:
v=0 o=- 2890844256 2890842807 IN IP4 204.34.34.32 s=I came from a web page t=0 0 c=IN IP4 0.0.0.0 m=video 8002 RTP/AVP 31 a=control:rtsp://audio.com/movie.aud m=audio 8004 RTP/AVP 3 a=control:rtsp://video.com/movie.vid
Position der URLs : separate RTSP-Steuersitzungen zu audio.com und video.com.
Vollständige Medieninitialisierung im SDP empfehlen, auch bei Nicht-RTSP-Zustellung.
C.3 Aggregate Control Available
Medien- und Session-a=control: ; relative URLs nach C.1.1 auflösen. Ein Stream : medienlevel a=control: weglassbar ; mehrere Streams : jeder Medienabschnitt MUSS eigenes a=control:.
Beispiel:
v=0 o=- 2890844256 2890842807 IN IP4 204.34.34.32 s=I contain i=
Eine RTSP-Sitzung zum Server ; rtsp://example.com/movie/trackID=1 und trackID=2 für Video und Audio ; rtsp://example.com/movie/ steuert den ganzen Film.