RTSP – protokol pre streamovanie v reálnom čase: definícia a princíp

RTSP protokol pre streamovanie v reálnom čase: definícia, princíp fungovania, ovládacie príkazy (play/pause) a prepojenie s RTP pre efektívne streamovanie médií.

Autor: Leandro Alegsa

Protokol RTSP (Real Time Streaming Protocol), ktorý vyvinula IETF a publikovala v roku 1998 ako RFC 2326, je aplikačný protokol určený pre systémy na streamovanie médií. Umožňuje klientovi vzdialene ovládať server na streamovanie médií – vydávať príkazy podobné príkazom videorekordéra, ako napríklad „play“ a „pause“, a zabezpečiť prístup k mediálnym súborom na serveri na základe času alebo polohy v súbore. RTSP je navrhnutý podobne ako HTTP (textovo orientované hlavičky), pričom podporuje stavové relácie (session) medzi klientom a serverom.

Samotné odosielanie audio/video dátových tokov nie je priamou súčasťou protokolu RTSP. Väčšina serverov RTSP používa pre samotný prenos médií protokol RTP (Real-time Transport Protocol) spolu s RTCP (Real-time Control Protocol). RTP prenáša mediálne pakety, RTCP poskytuje spätnú väzbu a synchronizáciu. Niektoré implementácie (napríklad staršie servery od RealNetworks) používajú vlastné transportné protokoly, ako napríklad RDT spoločnosti RealNetworks.

Ako RTSP funguje (základný priebeh relácie)

Typická RTSP relácia prebieha v týchto krokoch:

  • Klient otvorí TCP spojenie na RTSP server (defaultne port 554) a pošle príkaz OPTIONS.
  • Klient požiada o popis médií pomocou DESCRIBE. Server v odpovedi často poskytne SDP (Session Description Protocol) so zoznamom streamov, kodekov a transportných detailov.
  • Pomocou SETUP klient navrhne transport (RTP/UDP, RTP cez TCP „interleaved“ ap.) a server v odpovedi potvrdí parametre a pridelí Session identifikátor.
  • Príkazom PLAY sa začne prehrávanie – server začne posielať mediálne pakety cez RTP alebo iný dohodnutý kanál.
  • Počas prehrávania je možné použiť PAUSE na pozastavenie, TEARDOWN na ukončenie relácie, ďalej GET_PARAMETER, SET_PARAMETER a ďalšie.

Dôležité vlastnosti a hlavičky

  • CSeq – sekvenčné číslo požiadaviek (podobne ako v HTTP) pre zabezpečenie poradia príkazov a odpovedí.
  • Session – identifikátor relácie pridelený serverom, ktorý sa používa pri ďalších príkazoch.
  • Transport – hlavička, v ktorej sa špecifikuje spôsob prenosu médií (napr. RTP/UDP, RTP/AVP/TCP interleaved ap.).
  • SDP (v odpovedi na DESCRIBE) – popisuje formát streamov (kódek, vzorkovacia frekvencia, porty atď.).

Bezpečnosť, NAT a prekážky v sieti

RTSP používa podobné mechanizmy autentifikácie ako HTTP (Basic, Digest). Pretože médium sa často prenáša cez samostatné UDP spojenia (RTP), môže nastať problém pri NAT alebo firewalloch. Pre prenos cez ťažšie dostupné siete sa používa RTP „interleaved“ cez existujúce TCP spojenie RTSP (pakety sú zabalené do RTSP toku), alebo sa aplikuje tunelovanie cez HTTP/HTTPS. RTSP môže byť tiež chránené pomocou TLS (časť implementácií používa „RTSPS“), čím sa zaistí šifrovanie riadiacej komunikácie.

Verzie a štandardizácia

Pôvodná špecifikácia RTSP je uvedená v RFC 2326 (1998). Neskôr bolo vyvinuté a štandardizované RTSP 2.0 v RFC 7826 (2016), ktoré prinieslo zmeny a niektoré vylepšenia protokolu a odstránilo či upravilo niektoré časti pôvodnej špecifikácie s cieľom zjednodušiť implementácie a zvýšiť interoperabilitu.

Použitie a alternatívy

RTSP sa často používa v aplikáciách s nízkou latenciou a pri priamom prístupe k streamom, typicky v IP kamerách (video dohľad), VoD serveroch, niektorých IPTV riešeniach a pri prehrávaní živého videa tam, kde je potrebná rýchla odozva. Nevýhodou môže byť vyššia komplexnosť v prostredí so sieťovými obmedzeniami a horšia priechodnosť cez firewally v porovnaní s HTTP-bázovanými technikami.

Moderné alternatívy na distribúciu adaptívneho videa cez internet sú napríklad HTTP Live Streaming (HLS) alebo MPEG-DASH, ktoré lepšie spolupracujú s CDN, cache-ovaním a prekonávajú problémy s NAT/firewallmi, no často za cenu väčšej latencie.

Zhrnutie

RTSP je riadiaci aplikačný protokol pre ovládanie streamovania médií, ktorý sám o sebe neprenáša mediálne pakety, ale koordinuje ich prenos (bežne cez RTP). Poskytuje štandardizované príkazy na kontrolu prehrávania, podporuje stavové relácie, používa SDP na opis médií a existuje vo verziách definovaných v RFC 2326 (RTSP 1.0) a RFC 7826 (RTSP 2.0). Výhodou RTSP sú nízke oneskorenia a dobrá kontrola relácie; nevýhodou môže byť zložitejšia prevádzka cez NAT a firewally, kvôli čomu niekedy vyhrávajú HTTP-bázované streamingové riešenia.

Klienti

  • GStreamer
  • Media Player Classic
  • MPEG4IP
  • MPlayer
  • QuickTime
  • Prehrávač Avi
  • RealPlayer
  • Skype
  • Prehrávač médií VLC
  • Winamp
  • Prehrávač Windows Media Player
  • Xine
  • MythTV prostredníctvom služby Freebox
  • Prehrávač Gom

Softvér servera

  • Streamovací server QuickTime: Streamingový server spoločnosti Apple s uzavretým zdrojovým kódom, ktorý sa dodáva s operačným systémom Mac OS X Server
  • Darwin Streaming Server: Otvorená verzia streamovacieho servera Quicktime, ktorú spravuje spoločnosť Apple
  • pvServer: Je to produkt streamovacieho servera spoločnosti Alcatel-Lucent, ktorý sa predtým nazýval PacketVideo Streaming Server.
  • Server Helix DNA: Streamovací server spoločnosti RealNetworks. Dodáva sa v open-source aj proprietárnej verzii.
  • Live555: Open source C++ server a klientské knižnice používané v známych klientoch ako VLC a mplayer.
  • VideoLAN: Prehrávač médií a streamovací server s otvoreným zdrojovým kódom
  • Služby Windows Media Services: Streamingový server spoločnosti Microsoft, ktorý je súčasťou systému Windows Server.
  • VX30: Streamingový video server a vstavaný klient JAVA od spoločnosti Maui X-Stream.

Súvisiace stránky

  • Protokol RTP (Real-time Transport Protocol)
  • Riešenie Fusion RTSP pre vstavané systémy, napr. IPTV, internetovú televíziu a mobilné internetové zariadenia.


Prehľadať
AlegsaOnline.com - 2020 / 2025 - License CC3