RTSP (Real Time Streaming Protocol) – vad är det och hur fungerar det?
RTSP – vad är det och hur fungerar det? Lär dig hur Real Time Streaming Protocol styr realtidsströmning, skillnaden mot RTP, videokontroller (spela/paus) och praktiska användningsområden.
Real Time Streaming Protocol (RTSP), som utvecklats av IETF och skapades 1998 som RFC 2326, är ett protokoll för användning i system för strömmande media som gör det möjligt för en klient att fjärrstyra en server för strömmande media genom att utfärda videobandspelarliknande kommandon, t.ex. uppspelning och paus, och tillåta tidsbaserad åtkomst till filer på en server.
Själva sändningen av strömmande data ingår inte i RTSP-protokollet. De flesta RTSP-servrar använder det standardiserade RTP som transportprotokoll för själva ljud-/videodata. RTSP-servern från RealNetworks har också RealNetworks egenutvecklade RDT som transportprotokoll.
Hur fungerar RTSP?
RTSP är ett kontrollprotokoll — det styr uppspelning, paus, sökning och sessioner, men innehållet (mediedata) skickas vanligen via andra protokoll som RTP/UDP eller RTP över TCP. Kommunikation mellan klient och server är textbaserad och liknar HTTP: klienten skickar begäran (t.ex. PLAY, PAUSE) och servern svarar med statuskoder (t.ex. 200 OK).
En typisk uppspelningssekvens kan se ut så här:
- Klienten skickar DESCRIBE för att få metadata (SDP) om strömmen.
- Klienten skickar SETUP för att initiera transport (välja portar eller be om interleaving över TCP).
- Klienten skickar PLAY för att starta sändningen, och servern börjar skicka RTP-paket till de angivna portarna eller interleavade kanaler.
Vanliga RTSP-metoder
- OPTIONS – frågar vilka metoder servern stöder.
- DESCRIBE – begär beskrivning av media (vanligtvis i SDP-format).
- SETUP – sätter upp transportparametrar (t.ex. vilka portar eller om TCP-interleaving ska användas).
- PLAY – startar eller återupptar uppspelning.
- PAUSE – pausar uppspelning.
- TEARDOWN – avslutar sessionen och frigör resurser.
- ANNOUNCE och RECORD – används vid publicering av media från klient till server (t.ex. live-sändningar).
- GET_PARAMETER / SET_PARAMETER – för statusförfrågningar eller styrparametrar.
Transport och portar
RTSP använder vanligtvis port 554 som standard för kontrollkanalen. Själva mediedata levereras ofta via RTP/UDP på klientens angivna portsintervall (vanligtvis ett par där RTCP använder nästa portnummer). Om UDP inte är möjligt, kan RTP skickas interleavat över TCP i samma RTSP-anslutning (praktiskt bakom brandväggar/NAT).
Säkerhet och autentisering
- RTSP i sig är inte krypterat. Autentisering kan ske med Basic eller Digest-metoder, men dessa skyddar inte innehållet mot avlyssning.
- För säker överföring kan RTSP-tjänster köras över TLS (vissa implementationer stöder "RTSP over TLS" eller tunnling över HTTPS), vilket krypterar både kontroll- och eventuellt mediedata (beroende på konfiguration).
- Brandväggar och NAT kan skapa problem eftersom RTP använder separata UDP-portar; lösningar är RTP-over-TCP eller HTTP-tunnling.
Användningsområden och begränsningar
Vanliga användningsområden är IP-kameror (övervakning), videoklienter för live-övervakning, video-on-demand och interaktiva mediaplattformar där låg latens och fjärrstyrning krävs. RTSP är populärt i CCTV- och IP-kamera-världen eftersom det ger snabb respons och stöd för trick play (sök, snabbspolning).
Begränsningar inkluderar skalbarhet (RTSP-servrar är ofta stateful vilket gör stor distribution svårare utan särskilda gateway-lösningar) och problem vid traversering av brandväggar/NAT. Moderna webbbaserade lösningar som HLS och DASH prioriterar istället HTTP-fördelning och skalbarhet via CDN, medan WebRTC erbjuder ännu lägre latens för realtidskommunikation i webbläsare.
Revisioner och standarder
Originalet publicerades som RFC 2326 (1998). En senare uppdatering, RTSP 2.0 (RFC 7826), publicerades 2016 och innehåller flera förbättringar och förtydliganden. I praktiken lever flera versioner och implementationer parallellt, så kompatibilitet mellan klienter och servrar kan variera.
Praktiska tips
- Använd RTP-over-TCP eller HTTP-tunnling om du behöver fungera genom strikta brandväggar.
- Aktivera kryptering (TLS) och stark autentisering om innehållet är känsligt.
- För distribution i stor skala, överväg att konvertera RTSP-flöden till HLS/DASH eller att använda ett media-gateway/CDN som tar emot RTSP och levererar via HTTP-baserade protokoll.
- Testa med kända klienter som VLC för felsökning och kompatibilitet.
Sammanfattningsvis är RTSP ett kraftfullt protokoll för kontroll av strömmande media med goda möjligheter till låg latens och fin styrning av uppspelning, men kräver ofta kompletterande lösningar för transport, säkerhet och skalbar distribution.
Klienter
- GStreamer
- Media Player Classic
- MPEG4IP
- MPlayer
- QuickTime
- Avi-spelare
- RealPlayer
- Skype
- VLC-mediespelare
- Winamp
- Windows Media Player
- Xine
- MythTV via Freebox
- Gom-spelare
Serverprogramvara
- QuickTime Streaming Server: Apples slutna streamingserver som levereras med Mac OS X Server.
- Darwin Streaming Server: Open-sourced version av Quicktime Streaming Server som underhålls av Apple.
- pvServer: Detta är Alcatel-Lucents produkt för streamingservrar, som tidigare kallades PacketVideo Streaming Server.
- Helix DNA Server: RealNetworks' streamingserver. Finns i både öppen källkod och egenutvecklad version.
- Live555: Open source C++ server- och klientbibliotek som används i välkända klienter som VLC och mplayer.
- VideoLAN: Mediaspelare och streamingserver med öppen källkod
- Windows Media Services: Microsofts streamingserver som ingår i Windows Server.
- VX30: Streaming videoserver och inbäddad JAVA-klient från Maui X-Stream.
Relaterade sidor
- Transportprotokoll i realtid (RTP)
- Fusion RTSP-lösning för inbyggda system, t.ex. IPTV, internet-TV och mobila internetenheter.
Sök