IETF:n kehittämä ja vuonna 1998 RFC 2326:na luotu Real Time Streaming Protocol (RTSP) on suoratoistomediajärjestelmissä käytettävä protokolla, jonka avulla asiakas voi kauko-ohjata suoratoistomediapalvelinta antamalla videonauhurin kaltaisia komentoja, kuten "toista" ja "pysäytä", ja sallimalla palvelimella olevien tiedostojen aikapohjaisen käytön.

Itse suoratoistodatan lähettäminen ei ole osa RTSP-protokollaa. Useimmat RTSP-palvelimet käyttävät standardeihin perustuvaa RTP:tä varsinaisen ääni-/videodatan siirtoprotokollana. RealNetworksin RTSP-palvelimessa on myös RealNetworksin oma RDT siirtoprotokolla.

Miten RTSP toimii

RTSP on komentoprotokolla, joka toimii asiakas–palvelin-mallilla. Asiakas aloittaa yhteyden ja pyytää palvelimelta mediatiedoston tai esityksen kuvausta, asettaa virtuaalisen "istunnon" ja lähettää ohjauskomentoja. RTSP on tilallinen protokolla: palvelin ylläpitää istunnon tilaa (SETUP, PLAY, PAUSE, TEARDOWN jne.).

Tärkeimmät komennot (methodit)

  • OPTIONS – kysyy palvelimen tukemat toiminnot
  • DESCRIBE – pyytää mediakuvausta (esim. SDP)
  • SETUP – alustaa mediastraamin kuljetuksen ja määrittää kuljetustavan (RTP/UDP, RTP/TCP-interleaved)
  • PLAY – aloittaa toiston tai jatkaa sitä annetusta kohdasta
  • PAUSE – keskeyttää toiston
  • TEARDOWN – lopettaa istunnon
  • ANNOUNCE, RECORD, REDIRECT – lisätoimintoja, joita joissain implementaatioissa tuetaan

Median siirto ja kuljetusvaihtoehdot

RTSP ei sisällä varsinaista mediadataa, vaan määrittää, miten mediat siirretään. Yleisimpiä tapoja ovat:

  • RTP/UDP – perinteinen tapa lähetellä ääni- ja videopaketteja, usein yhdessä RTCP:n kanssa säätötietoa varten.
  • RTP yli TCP (interleaved) – mediat voidaan kapseloida RTSP-yhteyden sisään TCP-kanaviin, mikä auttaa palomuuri-/NAT-ongelmissa.
  • Omia protokollia – jotkin toimittajat (esim. RealNetworks) ovat käyttäneet omia siirtoratkaisujaan (kuten RDT).

Tekniset yksityiskohdat

  • Oletusportti RTSP:lle on TCP/554, mutta yhteys voidaan luonnollisesti avata muille porteille.
  • RTSP-URL-muoto on yleensä: rtsp://palvelin/polku/mediap , ja DESCRIBE-komennolla haetaan usein SDP-kuvaus (Session Description) mediakenttien ja kuljetusten määrittelyyn.
  • RTP-interleaving käyttää TCP-kanavia, joissa kukin kanava on merkitty kanavaindeksillä; tämä mahdollistaa median siirron yhden TCP-yhteyden sisällä.

Turvallisuus ja autentikointi

RTSP itsessään on tekstipohjainen ja alkuperäisessä muodossaan ei salausta. Tavalliset suojaustekniikat ja käytännöt ovat:

  • HTTP-tyyppinen autentikointi – Basic tai Digest (kuten HTTP Digest) käytössä monissa palvelimissa.
  • RTSPS / TLS – RTSP voidaan ajaa TLS-kryptauksen päällä (rtsps), jolloin yhteys ja komennot suojataan.
  • SRTP – jos itse media siirretään RTP:n kautta ja halutaan mediatason salaus, käytetään SRTP:tä.
  • Palomuurit ja NAT voivat aiheuttaa ongelmia UDP-pohjaisessa RTP-siirrossa; interleaved-tapa tai välityspalvelimet auttaa usein.

Käyttötapaukset ja rajaukset

RTSP on yleisesti käytetty:

  • IP-kameroissa ja valvontajärjestelmissä (videovalvonta, NVR/DVR)
  • mediapalvelimissa video-on-demand- ja live-sovelluksissa
  • ammattimaisissa suoratoistoratkaisuissa, joissa tarvitaan tarkkaa etähallintaa (seek, pause, trick play)

Rajoituksia ja haasteita:

  • RTSP ei automaattisesti ratkaise reititystä palomuurien/NATin läpi ilman lisäjärjestelyjä.
  • Monet nykyaikaiset web-pohjaiset tai CDN-pohjaiset suoratoistoratkaisut suosivat HTTP-pohjaisia protokollia (esim. HLS, MPEG-DASH), jotka toimivat helpommin palomuurien läpi ja CDN-arkkitehtuureissa.
  • RTSP:n alkuperäinen RFC (2326) on vanha; kehitys on jatkunut ja RTSP 2.0 on määritelty mm. RFC 7826:ssa, joka tuo muutoksia ja selvennyksiä.

Vaihtoehdot

  • HLS (Apple) ja MPEG-DASH – segmentoituihin tiedostoihin perustuvat, HTTP:n yli toimivat ratkaisut, hyvä CDN-yhteensopivuus.
  • WebRTC – matalan viiveen selainpohjainen reaaliaikainen media, soveltuu videoneuvotteluihin ja interaktiivisiin sovelluksiin.

Toteutuksia ja työkalut

Monet avoimen lähdekoodin ja kaupalliset ohjelmistot tukevat RTSP:ää: esimerkiksi Live555, VLC, GStreamer, FFmpeg ja erilaiset kaupalliset mediaserverit (kuten aiemmin mainittu RealNetworksin palvelin). RTSP-implementaatioissa on eroja tukien (komennot, autentikointi, siirtomuodot), joten yhteensopivuustestaus on usein tarpeen.

Yhteenveto

RTSP on tehokas ja monipuolinen protokolla mediapalvelimien etähallintaan ja interaktiiviseen suoratoistoon. Vaikka itse mediadatan siirto tapahtuu yleensä muilla protokollilla (RTP/RTCP, TCP-interleaving tai toimittajakohtaiset ratkaisut), RTSP tarjoaa tarvittavat komennot ja istunnonhallinnan. Nykyaikaisessa suoratoistossa RTSP kilpailee ja täydentää muita protokollia, ja valinta riippuu latenssivaatimuksista, verkko-olosuhteista ja integraatiotarpeista.