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.

Szerző: Leandro Alegsa

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
AlegsaOnline.com - 2020 / 2025 - License CC3