RTSP: reaalajas voogedastuse protokoll — mis see on ja kuidas töötab
Mis on RTSP ja kuidas see töötab? Tutvu reaalajas voogedastuse protokolli, käskude (play/pause), RTP ja serveri juhtimise põhimõtetega — praktiline ülevaade.
Reaalajas striimimise protokoll (Real Time Streaming Protocol, RTSP), mille on välja töötanud IETF ja mis loodi 1998. aastal RFC 2326-na, on protokoll, mida kasutatakse voogedastussüsteemides ja mis võimaldab kliendil kaugjuhtida voogedastusserverit, andes videomagnetofoni sarnaseid käske, nagu "play" ja "pause", ning võimaldades ajalist juurdepääsu serveris olevatele failidele. RTSP on eelkõige kontrolli- ja järjekorraprotokoll: kliendi ja serveri vaheline suhtlus sisaldab käsklusi, sessiooni haldust ja olekuinfot, kuid ei määra ise multimeedia kodekeid ega andmete paketisõidureegleid.
Streamiandmete saatmine ise ei ole RTSP-protokolli osa. Enamik RTSP-servereid kasutab tegelike audio-/videoandmete edastamiseks standarditel põhinevat RTP/RTCP-i (Real-time Transport Protocol ja selle kontrollprotokoll RTCP). RTP kannab multimeediapakke, RTCP annab tagasisidet kvaliteedi ja synchronisatsiooni kohta. RealNetworks'i RTSP-server kasutab transpordiprotokollina ka RealNetworks'i oma RDT-d. Kui UDP-põhine RTP ei ole võimalik (nt tulemüüri või NAT piirangute tõttu), saab RTP-andmeid sageli interleevida RTSP TCP-ühenduse kaudu või „tunnelida” RTSP/RTMP läbi HTTP, et läbida piiranguid.
Kuidas RTSP töötab
RTSP töötab sarnaselt käsureamoodiga kliendi ja serveri vahel: klient küsib sessiooni kirjelduse, seab ülesed transpordikanalid ja käivitab või peatab voogu. Tüüpiline voogu alustava seansi käik näeb välja nii:
- DESCRIBE — klient palub serverilt sessiooni kirjelduse (tavaliselt SDP-formaadis), kus on info saadaolevate voogude, kodekite ja portide kohta.
- SETUP — seadistab transpordi ja voogude vahelised kanalid (nt UDP portide paar või TCP interleave) ning loob sessiooni identifikaatori.
- PLAY — käivitab andmeside (server hakkab RTP-iga andmeid saatma või lubab kliendil neid vastu võtta).
- PAUSE — peatab ajutiselt edastuse, säilitades sessiooni.
- TEARDOWN — lõpetab sessiooni ja vabastab ressursid.
Loomulikult toetab RTSP ka täiendavaid meetodeid nagu OPTIONS (võimaluste päring), ANNOUNCE (serveri või kliendi poolt saadetav info), RECORD (salvestamine serverisse) ja SET_PARAMETER/GET_PARAMETER sessiooni parameetrite lugemiseks või muutmiseks.
Põhilised omadused ja tehnilised detailid
- Oleku- ja sessioonipõhine: RTSP on stateful — server salvestab sessiooni oleku ja identifikaatori, mis võimaldab juhtida sama voogu mitme käsuga.
- SDP kasutamine: DESCRIBE vastuses kasutatakse sageli SDP (Session Description Protocol) formaati, et edastada voogude, kodekite ja transpordimuutujate kirjeldus.
- Vaheprotokollid: RTSP kontrollib voogu, RTP kannab reaalajas meedia pakette ja RTCP hoolitseb kvaliteediteabe eest.
- Vaikimisi port: RTSP kasutab tavaliselt TCP porti 554 kliendi ja serveri halduskäskude jaoks; RTP jaoks kasutatakse dünaamilisi UDP-porte, kui ei ole kokku lepitud teisiti.
Kasutusvaldkonnad
RTSP on laialt levinud rakendustes, kus on vaja madalat latentsust ja reaalaja juhtimist, näiteks:
- IP-kaamerad ja valvekaamerad (videovalve), kus klient võib voogu peatada või kerida.
- meediaserverid ja professionaalsed voogedastusteenused.
- some videokonverentsisüsteemid või vahendid, mis vajavad täpset ajastust ja juhtimist.
Piirangud ja alternatiivid
- Brauseritugi: enamik veebibrausereid ei toeta RTSP-i otse, seega tuleb kasutada eraldi mängijat või gateway'd (näiteks muundamist HLS-/DASH-formaati või WebRTC-sillad).
- NAT ja tulemüürid: UDP-põhine RTP võib põhjustada keerukusi NAT-i ja tulemüüri tingimustes; selle tõttu kasutatakse tihti TCP-interleavingut või HTTP-tunnelit.
- Alternatiivid: HTTP-põhised lahendused nagu HLS ja MPEG-DASH on laialt levinud, kuna need töötavad hästi olemasolevate HTTP-infrastruktuuridega ja tulemüüridega. Väga madala latentsusega reaalaja suhtluseks kasutatakse sageli WebRTC-d.
Turvalisus
RTSP toetab sarnaseid autentimis- ja autoriseerimismehhanisme nagu HTTP (näiteks Basic ja Digest autentimine). Krüpteerimiseks võib RTSP-ühendust jooksutada TLS-i peal või kasutada muid krüpteeritud kanaleid (tihti nimetatakse seda lühidalt RTSPS-iks või RTSP üle TLS). Samuti on soovitatav kasutada võrgu- ja rakenduspõhiseid tulemüüre ning transpordi krüpteerimist, eriti avalikes või ebaturvalistes võrkudes.
Kokkuvõttes on RTSP võimas ja paindlik juhtimisprotokoll reaalajas voogedastuseks: ta ei kanna meedia-andmeid ise, vaid kontrollib ja koordineerib voogude edastamist, tavaliselt RTP abil. Kui vaja on brauseris või põrandaeest laialdast tuge, võib osutuda vajalikuks RTSP-i konverteerimine või selle asendamine HTTP-põhise lahendusega.
Kliendid
- GStreamer
- Media Player Classic
- MPEG4IP
- MPlayer
- QuickTime
- Avi mängija
- RealPlayer
- Skype
- VLC meediapleier
- Winamp
- Windows Media Player
- Xine
- MythTV kaudu Freebox
- Gom mängija
Serveri tarkvara
- QuickTime Streaming Server: Apple'i suletud lähtekoodiga voogedastusserver, mis on kaasas Mac OS X Serveriga.
- Darwin Streaming Server: Apple'i poolt hooldatav Quicktime Streaming Server'i avatud versioon.
- pvServer: See on Alcatel-Lucenti voogedastusserver, mida varem nimetati PacketVideo Streaming Serveriks.
- Helix DNA Server: RealNetworks'i voogedastusserver. Saadaval nii avatud lähtekoodiga kui ka patenteeritud versioonina.
- Live555: Avatud lähtekoodiga C++ server ja kliendiraamatukogud, mida kasutatakse tuntud klientides nagu VLC ja mplayer.
- VideoLAN: avatud lähtekoodiga meediapleier ja voogedastusserver
- Windows Media Services: Microsofti voogedastusserver, mis on lisatud Windows Serverile.
- VX30: Maui X-Stream'i voogedastusserver ja sisseehitatud JAVA-klient.
Seotud leheküljed
- Reaalajaline transpordiprotokoll (RTP)
- Fusion RTSP lahendus manussüsteemidele, nt IPTV, internetitelevisioon ja mobiilsed internetiseadmed.
Otsige