Zum Hauptinhalt springen

Appendix D: Minimal RTSP implementation (Minimale RTSP-Implementierung)

Appendix D: Minimal RTSP implementation (Minimale RTSP-Implementierung)

D.1 Client

Eine Client-Implementierung MUSS folgendes können:

  • Die Anfragen SETUP, TEARDOWN und entweder PLAY (minimaler Wiedergabeclient) oder RECORD (minimaler Aufzeichnungsclient) erzeugen. Bei RECORD MUSS auch ANNOUNCE implementiert sein.
  • Die Header CSeq, Connection, Session, Transport in Anfragen aufnehmen. Bei ANNOUNCE auch Content-Language, Content-Encoding, Content-Length, Content-Type.
  • In Antworten folgende Header verstehen: CSeq, Connection, Session, Transport, Content-Language, Content-Encoding, Content-Length, Content-Type. Bei RECORD auch Location. RTP-konforme Implementierungen sollten auch RTP-Info umsetzen.
  • Die Fehlerklasse jedes empfangenen Codes verstehen und Endbenutzer über 4xx- und 5xx-Codes informieren, sofern vorhanden ; die Pflicht kann entfallen, wenn der Benutzer dies ausdrücklich wünscht.
  • Auf asynchrone Serveranfragen (z. B. ANNOUNCE) vorbereitet sein und antworten ; nicht zwingend ANNOUNCE implementieren, aber jede Serveranfrage MUSS positiv oder negativ beantwortet werden.

Empfohlen für Interoperabilität: RTP/AVP/UDP, User-Agent, SDP gemäß Anhang C, Medieninitialisierung von Standardeingabe oder Kommandozeile als Hilfsanwendung. Bei abweichenden Anwendungsfällen nur Richtlinien.

D.1.1 Basic Playback

Für On-Demand-Streams MUSS der Client außerdem: PAUSE erzeugen ; REDIRECT und den Header Location implementieren.

D.1.2 Authentication-enabled

Für authentifizierungspflichtige Server MUSS der Client außerdem: 401 erkennen ; WWW-Authenticate parsen und einfügen ; Basic- und Digest-Authentifizierung implementieren.

D.2 Server

Eine minimale Server-Implementierung MUSS:

  • SETUP, TEARDOWN, OPTIONS und entweder PLAY (minimaler Wiedergabeserver) oder RECORD (minimaler Aufzeichnungsserver) implementieren. Bei RECORD sollte ANNOUNCE dazukommen.
  • In Antworten Connection, Content-Length, Content-Type, Content-Language, Content-Encoding, Transport, Public aufnehmen ; Location bei RECORD ; RTP-Info bei RTP-Konformität.
  • In Anfragen Connection, Session, Transport, Require parsen und angemessen antworten.

Empfohlen: RTP/AVP/UDP, Server-Header, DESCRIBE, SDP-Erzeugung (Anhang C).

D.2.1 Basic Playback

Zusätzlich MUSS der Server: Range erkennen und bei fehlendem Seek einen Fehler liefern ; PAUSE implementieren. Empfohlen: Range mit NPT (SMPTE empfohlen), Präsentationslänge in der Initialisierung, Abbildungen Datenzeitstempel → NPT (bei RTP ggf. rtptime in RTP-Info).

D.2.2 Authentication-enabled

Zusätzlich MUSS der Server: 401 erzeugen wenn nötig ; WWW-Authenticate parsen und senden ; Basic- und Digest-Authentifizierung implementieren.