Protokol RTSP (Real Time Streaming Protocol), vyvinutý skupinou IETF a vytvořený v roce 1998 jako RFC 2326, je protokol pro použití v systémech streamovaných médií, který umožňuje klientovi vzdáleně ovládat server streamovaných médií, vydávat příkazy podobné příkazům videorekordéru, například "play" a "pause", a umožnit přístup k souborům na serveru v závislosti na čase.
Samotné odesílání streamovaných dat není součástí protokolu RTSP. Většina serverů RTSP používá jako přenosový protokol pro vlastní audio/video data protokol RTP založený na standardech. Server RTSP od společnosti RealNetworks také používá jako transportní protokol vlastní RDT společnosti RealNetworks.
Co je RTSP a stručná historie
RTSP je aplikační protokol navržený pro řízení streamovaného multimediálního obsahu. Nepřenáší samotná média, ale zprostředkovává řízení (např. spuštění, pozastavení, přetažení) mezi klientem a mediálním serverem. Původní specifikace je uvedena v RFC 2326 (1998). Modernější revize je RTSP 2.0 (RFC 7826, 2016), která opravila některé nejasnosti, zlepšila interoperabilitu a rozšířila možnosti autentizace a transportu.
Jak RTSP funguje
RTSP používá model klient–server podobný HTTP: klient posílá požadavky (metody) na server a server odpovídá stavovými kódy a hlavičkami. Mezi požadavky se často vyskytují hlavičky jako CSeq (číslo sekvence) a Session (identifikátor relace). Server může být stavový (udržuje informace o relaci) nebo bezstavový s přidáním session tokenů.
Hlavní metody (příkazy) RTSP
- OPTIONS – zjistí podporované metody serveru.
- DESCRIBE – získá popis média (např. SDP), který obsahuje informace o kodecích a transportech.
- SETUP – nastaví transportní parametry (porty, profil RTP/RTP over TCP apod.) a vytvoří relaci.
- PLAY – spustí přehrávání streamu (lze určit časový rozsah přes hlavičku Range).
- PAUSE – pozastaví přehrávání bez ukončení relace.
- TEARDOWN – ukončí relaci a uvolní prostředky.
- GET_PARAMETER / SET_PARAMETER – dotazy a konfigurace parametrů relace nebo zařízení.
- REDIRECT / ANNOUNCE – pokročilejší ovládací příkazy využívané v některých implementacích.
Transport médií
- RTSP sám média nepřenáší, typicky řídí přenos přes RTP/RTCP (Realtime Transport Protocol).
- Přenos může probíhat přes UDP (RTP/UDP), TCP (pro případy NAT nebo firewallů) nebo v interleaved módu uvnitř RTSP/TCP se speciálními kanálovými značkami.
- Některé proprietární servery (např. starší produkty RealNetworks) mohou používat alternativní transporty jako RDT.
- Výchozí TCP port pro RTSP je obvykle 554.
Bezpečnost, autentizace a rozšíření
- RTSP definoval mechanismy autentizace podobné HTTP (Basic, Digest). Moderní implementace podporují i zabezpečené kanály (např. TLS), čímž se omezuje odposlech a útoky typu man-in-the-middle.
- Problémy s NAT a firewally řeší přenos médií přes TCP nebo tunelování RTSP v HTTP.
- RTSP 2.0 přinesl vylepšení pro lepší zabezpečení, správu chyb a interoperabilitu.
Použití a příklady
- IP kamery a dohledové systémy – mnoho CCTV kamer poskytuje živý obraz přes RTSP stream.
- Video on Demand (VoD) – servery umožňují klientovi pozičně přistupovat k obsahu (seek, pause, play).
- Živý přenos – v kombinaci s RTP/RTCP pro nízkou latenci a synchronizaci audio/video stop.
- Média přehrávače a knihovny – klienti jako VLC, ffmpeg, GStreamer nebo knihovny Live555 podporují RTSP.
Příklad jednoduchého RTSP požadavku
Typické volání pro spuštění přehrávání může vypadat takto (zjednodušeně):
PLAY rtsp://server.example/media.mp4 RTSP/1.0 CSeq: 3 Session: 4711
Server odpoví stavovým kódem (např. 200 OK) a pak probíhá přenos médií přes dohodnutý transport.
Výhody a omezení
- Výhody: přesné řízení přehrávání, nízká latence při vhodné konfiguraci, široké nasazení v IP kamerách a profesionálních streamovacích řešeních.
- Omezení: není univerzálním transportem médií (nutné kombinovat s RTP nebo jinými protokoly), problémy s NAT/firewally, bezpečnost závisí na implementaci (nutné TLS a správná autentizace).
Podpora a interoperabilita
RTSP je široce podporován jak na straně serverů, tak klientů. Nicméně kvůli volným rozšířením a proprietárním transportům se mohou v praxi vyskytnout nekompatibility mezi různými zařízeními a výrobci. Doporučeným postupem je testovat konkrétní kombinaci server/klient a preferovat implementace držící se standardů (RTP, SDP, RTSP 2.0), pokud je to možné.
RTSP zůstává důležitým protokolem pro scénáře, kde je potřeba interaktivně řídit přehrávání multimédií a minimalizovat zpoždění, přičemž skutečný přenos dat obvykle řeší komplementární protokoly jako RTP.