RTSP — protokół strumieniowy: definicja i zastosowania

RTSP — protokół strumieniowy: definicja, działanie i zastosowania w streamingu wideo/audio, sterowanie serwerami oraz integracja z protokołem RTP.

Autor: Leandro Alegsa

Real Time Streaming Protocol (RTSP), opracowany przez IETF i stworzony w 1998 roku jako RFC 2326, jest protokołem do użytku w systemach mediów strumieniowych, który umożliwia klientowi zdalne sterowanie serwerem mediów strumieniowych, wydając polecenia podobne do poleceń magnetowidu, takie jak "play" i "pause", oraz umożliwiając czasowy dostęp do plików na serwerze.

Samo wysyłanie danych strumieniowych nie jest częścią protokołu RTSP. Większość serwerów RTSP używa opartego na standardach protokołu RTP jako protokołu transportowego dla rzeczywistych danych audio/wideo. Serwer RTSP firmy RealNetworks posiada również protokół transportowy RDT, będący własnością firmy RealNetworks.

Jak działa RTSP

RTSP jest protokołem sterującym — zapewnia mechanizmy negocjacji i kontroli sesji strumieniowych między klientem a serwerem. Typowy przebieg komunikacji wygląda następująco:

  • Klient wysyła DESCRIBE, aby pobrać opis sesji (zwykle w formacie SDP — Session Description Protocol), który określa dostępne strumienie i ich parametry.
  • Klient wysyła SETUP dla każdego strumienia, aby ustalić parametry transportu (np. UDP, TCP interleaved) i zarezerwować zasoby na serwerze.
  • Klient wysyła PLAY, aby rozpocząć przesyłanie danych; serwer potwierdza i rozpoczyna wysyłkę mediów (przez RTP lub inny mechanizm transportowy).
  • W trakcie sesji klient może wysłać PAUSE (zatrzymanie) lub PLAY ponownie; po zakończeniu sesji wysyła TEARDOWN, aby zakończyć i zwolnić zasoby.

RTSP jest protokołem stanowym — serwer może utrzymywać informacje o sesji (np. identyfikator sesji), a komunikacja często odbywa się przez stałe połączenie TCP (domyślnie port 554), chociaż elementy transportu mediów mogą używać UDP lub TCP.

Główne metody RTSP

  • OPTIONS — sprawdza, jakie metody i funkcje obsługuje serwer.
  • DESCRIBE — żąda opisu sesji (SDP).
  • ANNOUNCE — pozwala klientowi lub serwerowi przekazać opis sesji (np. przy publikacji strumienia).
  • SETUP — negocjuje transport i inicjuje zasoby dla konkretnego strumienia.
  • PLAY — uruchamia przesył danych w ramach sesji.
  • PAUSE — zatrzymuje czasowo przesyłanie mediów.
  • TEARDOWN — kończy sesję i zwalnia zasoby.
  • Dodatkowe: GET_PARAMETER, SET_PARAMETER, REDIRECT itp., używane do kontroli i konfiguracji.

Transport danych i powiązane protokoły

RTSP nie przenosi samych strumieni mediów — w praktyce współpracuje z innymi protokołami:

  • RTP/RTCP — najczęściej używane do przesyłania medialnych pakietów i raportowania statystyk (synchronizacja, kontrola jakości).
  • SDP (Session Description Protocol) — format opisu parametrów sesji (kodeki, porty, adresy), zwykle dostarczany w odpowiedzi na DESCRIBE.
  • TCP interleaved — alternatywa dla UDP, gdy połączenia UDP są blokowane (strumienie RTP są przesyłane wewnątrz połączenia RTSP/TCP).

Domyślny port dla RTSP to 554, ale implementacje mogą używać innych portów. Ze względu na NAT i zapory sieciowe, transmisja RTSP/RTP wymaga często dodatkowych mechanizmów (np. tunelowanie przez HTTP, proxy RTSP, utrzymywanie sesji TCP).

Zastosowania

  • Monitoring i kamery IP — RTSP jest powszechnie stosowany do podglądu na żywo z kamer CCTV i systemów nadzoru.
  • Serwery multimedialne — VOD (Video on Demand) oraz serwisy streamingowe używają RTSP do kontroli odtwarzania.
  • Usługi transmisji na żywo — RTSP może być używany w części kontrolnej strumieniowania na żywo, choć w praktyce popularne są też inne protokoły (HLS, DASH) zależnie od wymagań skalowalności i kompatybilności z przeglądarkami.
  • Integracja z aplikacjami — odtwarzacze takie jak VLC, GStreamer, Live555 czy FFmpeg obsługują RTSP jako źródło mediów.

Bezpieczeństwo i ograniczenia

  • RTSP sam w sobie przesyła polecenia w postaci tekstowej i bez szyfrowania (podobnie do HTTP), co stwarza ryzyko podsłuchu lub modyfikacji poleceń. Istnieją rozszerzenia i praktyki zabezpieczeń (np. RTSP over TLS), lecz nie wszystkie implementacje je wspierają.
  • NAT i zapory często blokują porty UDP używane przez RTP, co zmusza do stosowania trybu interleaved (RTP przez TCP) lub tunelowania ruchu.
  • Skalowalność — RTSP w podejściu na żywo może być mniej skalowalny niż HTTP-adaptive streaming (HLS/DASH) dla bardzo dużej liczby równoczesnych użytkowników.

Standardy i wersje

Pierwotną specyfikacją jest RFC 2326 (1998). Później pojawiły się prace nad RTSP 2.0 — m.in. RFC 7826 (2016), które aktualizuje i poprawia niektóre aspekty protokołu, wprowadzając m.in. lepsze mechanizmy obsługi błędów i bezpieczeństwa. Mimo to wiele urządzeń i serwerów wciąż opiera się na implementacjach zgodnych głównie z RTSP 1.0.

Popularne implementacje i narzędzia

  • Odtwarzacze: VLC, QuickTime (starsze), ffplay (część FFmpeg).
  • Biblioteki i serwery: Live555, GStreamer, Darwin Streaming Server, Wowza, NGINX z modułami, polecenia i biblioteki FFmpeg.
  • Kamery IP i rejestratory (NVR) często zapewniają strumienie RTSP jako standardowy sposób dostępu do wideo.

Podsumowanie

RTSP to elastyczny protokół sterujący dla transmisji multimediów, zaprojektowany do zdalnej kontroli odtwarzania strumieni audio/wideo. Choć nie przenosi samych danych medialnych (do tego zwykle używa RTP/RTCP), zapewnia mechanizmy negocjacji i zarządzania sesją, szeroko stosowane w systemach monitoringu, VOD i niektórych rozwiązaniach transmisji na żywo. Przy wdrażaniu warto uwzględnić kwestie bezpieczeństwa, obsługi NAT i ewentualne ograniczenia skalowalności.

Klienci

  • GStreamer
  • Media Player Classic
  • MPEG4IP
  • MPlayer
  • QuickTime
  • Odtwarzacz Avi
  • RealPlayer
  • Skype
  • Odtwarzacz multimedialny VLC
  • Winamp
  • Windows Media Player
  • Xine
  • MythTV przez Freebox
  • Gracz Gom

Oprogramowanie serwera

  • QuickTime Streaming Server: Zamknięty serwer strumieniowy firmy Apple, dostarczany z systemem Mac OS X Server.
  • Darwin Streaming Server: Udostępniona wersja serwera strumieniowego Quicktime utrzymywana przez Apple.
  • pvServer: Dawniej nazywany PacketVideo Streaming Server, jest to serwer strumieniowy firmy Alcatel-Lucent.
  • Serwer DNA Helix: Serwer strumieniowy firmy RealNetworks. Występuje zarówno w wersji open-source jak i własnościowej.
  • Live555: Open source C++ serwer i biblioteki klienckie używane w dobrze znanych klientach takich jak VLC i mplayer.
  • VideoLAN: Odtwarzacz multimedialny i serwer strumieniowy typu open source
  • Windows Media Services: Serwer strumieniowy firmy Microsoft dołączony do systemu Windows Server.
  • VX30: Strumieniowy serwer wideo i wbudowany klient JAVA firmy Maui X-Stream.

Powiązane strony

  • Protokół transportowy czasu rzeczywistego (RTP)
  • Rozwiązanie Fusion RTSP dla systemów wbudowanych, np. IPTV, telewizji internetowej i mobilnych urządzeń internetowych.


Przeszukaj encyklopedię
AlegsaOnline.com - 2020 / 2025 - License CC3