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.