Kas ir RTSP? Reālā laika straumēšanas protokols — definīcija un darbība
Uzziniet, kas ir RTSP — reālā laika straumēšanas protokols, tā darbība, komandas (atskaņot/apturēt) un kā tas sadarbojas ar RTP serveru pārraidēm.
Reālā laika straumēšanas protokols (RTSP), ko izstrādāja IETF un 1998. gadā izveidoja kā RFC 2326, ir protokols, ko izmanto straumēšanas multivides sistēmās un kas ļauj klientam attālināti kontrolēt straumēšanas multivides serveri, izdodot videomagnetofonam līdzīgas komandas, piemēram, "atskaņot" un "apturēt", un nodrošina uz laiku balstītu piekļuvi serverī esošajiem failiem.
Pati straumēšanas datu nosūtīšana nav daļa no RTSP protokola. Lielākā daļa RTSP serveru izmanto uz standartiem balstītu RTP kā faktisko audio/video datu pārraides protokolu. RealNetworks RTSP serveris kā transporta protokolu izmanto arī RealNetworks patentēto RDT.
Kā RTSP darbojas
RTSP ir vadības (control) protokols klienta un straumēšanas servera starpā. Tas darbojas līdzīgi HTTP — sūta teksta formatā pieprasījumus un saņem atbildes — taču ir specializēts multivides straumēšanai. Parasti RTSP nodrošina komandas straumes atskaņošanas kontrolei (piem., "DESCRIBE", "SETUP", "PLAY", "PAUSE", "TEARDOWN"), norādot, kurā brīdī sākt, apturēt vai pārtraukt straumēšanu.
Biežāk izmantotās komandas
- OPTIONS — jautā serverim, kādas RTSP iespējas tas atbalsta.
- DESCRIBE — pieprasa multivides sesijas aprakstu (parasti atbildē tiek saņemts SDP — Session Description Protocol).
- SETUP — konfigurē transporta parametros (piem., kuri tīkla porti tiks izmantoti RTP/RTCP pārsūtīšanai vai vai tiks izmantots interleaving pār TCP).
- PLAY — sāk vai atsāk straumēšanu no servera.
- PAUSE — īslaicīgi aptur straumēšanas pārraidi bez sesijas pazaudēšanas.
- TEARDOWN — beidz sesiju un atbrīvo servera resursus.
- RECORD — (ja atbalstīts) ļauj klientam ierakstīt straumi uz serveri.
RTP, RTCP un transporta opcijas
Kā minēts, RTSP nepārraida paša multivides plūsmu. To parasti veic RTP (Real-time Transport Protocol), kam līdzi nāk RTCP (Real-time Transport Control Protocol) pārraudzībai, sinhronizācijai un statistikas ziņojumiem. RTSP mehānisms tikai norāda, kur un kā šie dati tiks sūtīti — vai nu UDP datagrammās, vai TCP savienojuma ietvaros (interleaving), vai izmantojot TLS/SSL drošu kanālu.
Tīkla izaicinājumi un drošība
Parasti RTSP izmanto portu 554 TCP/UDP kā noklusējuma kontroldienestu, tomēr reālie datu kanāli var izmantot citus portus. Dažkārt ugunsmūri un NAT ieklausīšanās traucē UDP bāzētai RTP plūsmai; risinājumi ietver interleaving (RTP datu sūtīšana pār RTSP/TCP savienojumu), tunelēšanu pāri HTTP(S), kā arī izmantošanu ar STUN/TURN/ICE risinājumiem reāllaika savienojumu nodrošināšanai.
Drošībai RTSP var pievienot autentifikāciju (Basic, Digest) un izmantot TLS (RTSPS) vai RTSP pār HTTPS tuneli, lai šifrētu gan komandas, gan interleaved datu plūsmas. RTSP 1.0 standarts neparedzēja stingru drošības modeli, tāpēc mūsdienās ir ieteicams izmantot papildu tīkla drošības slāņus.
Standarti un versijas
RTSP 1.0 ir definēts RFC 2326 (1998). Vēlāk tika izstrādāta RTSP 2.0, kas atrunāta RFC 7826 (2016), kurā uzlabota protokola konsekvence, kļūdu apstrāde, drošības iespējas un labāka atbilstība mūsdienu tīkla prasībām. Tomēr daudzi esošie serveri un kameras joprojām izmanto 1.0 versijas īstenojumus vai pielāgotas variācijas.
Lietojuma piemēri
- IP kameras un videonovērošana — tieša straumes kontrole un piekļuve kameru plūsmām.
- IPTV un tiešraides izplatīšana — vadīt straumes atskaņošanu klienta pusē.
- Multivides serveri (piem., VLC, Wowza, GStreamer) — atbalsta RTSP klientu savienojumu un vadību.
- Multivides atskaņotāji — lietotāja saskarne izmanto RTSP, lai pārvaldītu straumes bez nepieciešamības lejupielādēt visu failu.
Praktisks secības piemērs
Vienkāršs RTSP sesijas veiksmīgas izveides piemērs:
- Klients sūta DESCRIBE uz RTSP URL, serveris atbild ar SDP, kurā aprakstīts straumes saturs.
- Klients sūta SETUP, nosakot transporta parametrus (piem., RTP/UDP portus vai interleaved kanālus pār TCP). Serveris atgriež Session ID.
- Klients sūta PLAY ar minēto Session ID — serveris sāk sūtīt RTP pakas uz norādītajiem portiem vai interleaved kanālā.
- Vēlāk klients var sūtīt PAUSE vai TEARDOWN sesijas apturēšanai/izbeigšanai.
Kopsavilkums
RTSP ir standarta vadības protokols multivides straumēšanai, kas atvieglo klientu iespējas kontrolēt atskaņošanu un pārvaldīt straumju sesijas. Tas bieži tiek kombinēts ar RTP/RTCP faktiskai datu pārraidei. Lai nodrošinātu drošu un stabilu darbību mūsdienu tīklos, bieži nepieciešama papildus konfigurācija (TLS, autentifikācija, tunelēšana), it īpaši, ja jāstrādā ar NAT/ugunsmūriem vai publiskām tīklu vidēm.
Klienti
- GStreamer
- Multivides atskaņotājs Classic
- MPEG4IP
- MPlayer
- QuickTime
- Avi atskaņotājs
- RealPlayer
- Skype
- VLC multivides atskaņotājs
- Winamp
- Windows Media Player
- Xine
- MythTV, izmantojot Freebox
- Gom spēlētājs
Servera programmatūra
- QuickTime straumēšanas serveris: Apple slēgtā koda straumēšanas serveris, kas tiek piegādāts kopā ar Mac OS X Server
- Darwin straumēšanas serveris: Apple uzturētā Quicktime straumēšanas servera atvērtā versija
- pvServer: Tas ir Alcatel-Lucent straumēšanas servera produkts, kas agrāk tika saukts PacketVideo Streaming Server.
- Helix DNS serveris: RealNetworks straumēšanas serveris. Pieejams gan atvērtā koda, gan patentētā versijā.
- Live555: Atvērtā pirmkoda C++ servera un klienta bibliotēkas, ko izmanto tādos labi zināmos klientos kā VLC un mplayer.
- VideoLAN: Atvērtā pirmkoda multivides atskaņotājs un straumēšanas serveris
- Windows multivides pakalpojumi: Microsoft straumēšanas serveris, kas iekļauts Windows Server.
- VX30: Maui X-Stream straumēšanas video serveris un iegultais JAVA klients.
Saistītās lapas
- Reālā laika transporta protokols (RTP)
- Fusion RTSP risinājums iegultajām sistēmām, piemēram, IPTV, interneta TV un mobilajām interneta ierīcēm.
Meklēt