RTSP (Real Time Streaming Protocol) – definíció, funkciók és működés
RTSP: definíció, működés és funkciók — kliensoldali vezérlés, VCR-parancsok, RTP alapú adatátvitel és időalapú hozzáférés streaming médiákhoz.
Az IETF által kifejlesztett és 1998-ban RFC 2326 néven létrehozott Real Time Streaming Protocol (RTSP) a streaming médiarendszerekben használt protokoll, amely lehetővé teszi, hogy egy kliens távolról vezéreljen egy streaming médiaszervereket, és olyan VCR-szerű parancsokat adjon ki, mint a "play" és a "pause", valamint időalapú hozzáférést biztosít a szerveren lévő fájlokhoz.
Maga a streaming-adatok küldése nem része az RTSP protokollnak. A legtöbb RTSP-kiszolgáló a szabványokon alapuló RTP-t használja a tényleges audio/videoadatok szállítási protokolljaként. A RealNetworks RTSP-kiszolgálója szintén a RealNetworks saját fejlesztésű RDT-jét használja szállítási protokollként.
Mi az RTSP és miért használják?
Az RTSP egy vezérlőprotokoll, amely lehetőséget ad a kliensnek (például lejátszóprogramnak vagy IP-kamerakezelő alkalmazásnak) arra, hogy távolról irányítsa egy médiaszerver lejátszását. RTSP segítségével a kliens kéréseket küld a szervernek (például DESCRIBE, SETUP, PLAY, PAUSE, TEARDOWN), a szerver pedig válaszol ezekre. Maga a médiafolyam átvitele jellemzően más protokollon történik (RTP/UDP vagy RTP interleaving TCP-n).
Hogyan működik — alapfolyamat
- DESCRIBE: a kliens lekéri a média munkamenet leírását (SDP — Session Description Protocol), amely tartalmazza az elérhető sávokat (audio, video), kodekeket, és a transzport-opciókat.
- SETUP: létrehozza a transzportcsatornát a kiválasztott média-sávra (például RTP/UDP portok megadása vagy RTP interleaving a TCP-n).
- PLAY: elindítja a lejátszást a megadott időponttól vagy pozíciótól.
- PAUSE: leállítja a lejátszást anélkül, hogy bontaná a munkamenetet (session).
- TEARDOWN: lezárja a munkamenetet és felszabadítja az erőforrásokat.
Főbb RTSP-parancsok és működésük
- OPTIONS — a szerver által támogatott műveletek lekérdezése.
- DESCRIBE — session leírás (SDP) lekérése.
- SETUP — transzport megállapítása (UDP, TCP interleaved stb.).
- PLAY, PAUSE, TEARDOWN — vezérlőparancsok a lejátszás kezelésére.
- ANNOUNCE, RECORD — szerver felé történő médiaáram indítása (pl. élő közvetítés feladása), illetve paraméterezés.
- GET_PARAMETER, SET_PARAMETER — lekérdezés és állítás a munkamenet-paraméterekre.
Transzport és portok
Az RTSP általában TCP kapcsolatot használ vezérlésre, alapértelmezett portja a 554, de gyakran használják a 8554-et is. A tényleges audio/videó adatokat általában az RTP protokoll viszi, UDP portokon, amelyek a SETUP során kerülnek egyeztetésre. Ha UDP nem lehetséges (pl. tűzfal miatt), akkor az RTP adatfolyamok interleaving módban TCP-n is továbbíthatók az RTSP-kapcsolaton belül.
Munkamenet és állapot
RTSP egy állapotkövető (stateful) protokoll: a szerver munkamenet-azonosítót (Session ID) rendel a klienshez a SETUP válaszban. A későbbi kérésekben ez a session ID meg kell jelenjen, hogy a szerver tudja, melyik munkamenetre vonatkoznak az utasítások.
Biztonság és hitelesítés
- Alapvetően RTSP nem titkosítja a vezérlőforgalmat; ezért érzékeny környezetben ajánlott a RTSPS (RTSP over TLS) alkalmazása vagy VPN használata.
- Támogatott hitelesítési módok: HTTP-szerű BASIC és DIGEST, illetve egyes implementációk tokenalapú vagy más egyedi megoldásokat használnak.
- Tűzfal és NAT miatt az UDP alapú RTP sokszor problémás; ilyenkor RTP over TCP, RTSP tunneling vagy relé/proxy megoldások alkalmazhatók.
Válaszkódok és hibakezelés
RTSP válaszkódjai hasonlóak az HTTP-hez (pl. 200 OK, 404 Not Found), de vannak RTSP-specifikusak is (például 454 Session Not Found). Hibák esetén a kliens újrakérdezhet vagy új SETUP-ot indíthat.
Használati esetek
- IP-kamerák és CCTV rendszerek: élő videó továbbítása és vezérlése.
- Streaming szerverek (pl. Wowza, Darwin/RTSP szerverek) közvetlen vezérlése.
- Élő közvetítések, ahol alacsony késleltetés és pontos vezérlés szükséges.
Előnyök és korlátok
- Előny: pontos, VCR-szerű vezérlés (seek, pause, play), alacsony késleltetésű átvitel RTP mellett.
- Korlát: webböngészők natívan nem támogatják az RTSP-t — általában átkódolásra vagy beágyazott lejátszóra van szükség, illetve a tűzfal/NAT kezelés bonyolultabb lehet.
RTSP verziók és szabványok
Az eredeti RTSP a RFC 2326 (1998). Később megjelent az RTSP 2.0, az RFC 7826 (2016), amely több tisztázást és protokollfejlesztést tartalmazott (kibővített hibakezelés, jobban definiált állapotmodell, security-javítások). A gyakorlatban azonban sok eszköz és szerver még mindig az 1.0-hoz hasonló viselkedést követi, ezért a kompatibilitásra figyelni kell.
Alternatívák
Ha cél a böngészőben való lejátszás vagy széles körű CDN-támogatás, gyakori alternatívák a HLS (Apple), MPEG‑DASH és egyre inkább a WebRTC (valós idejű, peer-to-peer, alacsony késleltetés). Ezek közül a WebRTC és bizonyos HLS/DASH konfigurációk jobban integrálhatók modern webes környezetbe.
Gyakorlati tippek
- Ha tűzfal mögött vagy NAT-ban dolgozol, fontold meg az RTP over TCP lehetőséget vagy RTSP tunnelinget.
- Használj TLS-t (RTSPS) és erős hitelesítést, ha a vezérlőparancsok vagy a felhasználói adatok érzékenyek.
- Böngésző-kompatibilitáshoz konvertálj RTSP-t HLS/DASH vagy WebRTC formátumba szerver oldalon.
Összefoglalva: az RTSP egy hatékony vezérlőprotokoll streaming rendszerekhez, amely pontos vezérlést biztosít a szerveroldali médiafolyamok felett, miközben maguk a médiaadatok továbbítása általában RTP-vel történik. A protokoll alkalmas IP-kamerákhoz és valós idejű közvetítésekhez, ugyanakkor figyelmet igényel a biztonság, a tűzfal/NAT és a böngésző-támogatás szempontjából.
Ügyfelek
- GStreamer
- Media Player Classic
- MPEG4IP
- MPlayer
- QuickTime
- Avi játékos
- RealPlayer
- Skype
- VLC médialejátszó
- Winamp
- Windows Media Player
- Xine
- MythTV keresztül Freebox
- Gom játékos
Kiszolgáló szoftver
- QuickTime Streaming Server: Mac OS X Serverrel együtt szállított zárt forráskódú Apple streaming szerver.
- Darwin Streaming Server: A Quicktime Streaming Server nyílt forráskódú változata, amelyet az Apple tart fenn.
- pvServer: Korábban PacketVideo Streaming Server néven az Alcatel-Lucent streaming szerver terméke.
- Helix DNS szerver: RealNetworks streaming szerver. Nyílt forráskódú és szabadalmaztatott változatban is kapható.
- Live555: Nyílt forráskódú C++ szerver és klienskönyvtárak, amelyeket olyan jól ismert kliensekben használnak, mint a VLC és az mplayer.
- VideoLAN: Nyílt forráskódú médialejátszó és streaming szerver
- Windows Media Services: A Microsoft Windows Serverhez mellékelt streaming-kiszolgálója.
- VX30: Streaming videó szerver és beágyazott JAVA kliens a Maui X-Stream-től.
Kapcsolódó oldalak
- Valós idejű szállítási protokoll (RTP)
- Fusion RTSP megoldás beágyazott rendszerekhez, pl. IPTV, internetes TV és mobil internet eszközökhöz.
Keres