Протоколът за стрийминг в реално време (RTSP), разработен от IETF и създаден през 1998 г. като RFC 2326, е протокол за използване в системи за стрийминг на мултимедия, който позволява на клиент да управлява дистанционно сървър за стрийминг на мултимедия, като издава команди, подобни на тези от видеокасетофона, като "възпроизвеждане" и "пауза", и позволява достъп до файлове на сървъра в зависимост от времето. RTSP е текстов, командно-ориентиран протокол (по подобие на HTTP) и често се използва за управление на видео на живо и записи в IP камери, системи за видеонаблюдение и услуги за видео при поискване (VoD).

Важно: самото изпращане на поточни данни не е част от протокола RTSP. Повечето RTSP сървъри използват базирания на стандартите RTP като транспортен протокол за действителните аудио/видео данни. Сървърът RTSP на RealNetworks също използва патентования RDT на RealNetworks като транспортен протокол.

Как работи RTSP

RTSP изпълнява ролята на управленски и контролен слой между клиент (например видео плейър или NVR) и мултимедиен сървър. Типичната комуникация включва:

  • описание на сесията с помощта на SDP (Session Description Protocol),
  • настройване на транспортните параметри (например кои портове да се използват за RTP/RTCP),
  • стартиране и спиране на възпроизвеждането (PLAY, PAUSE, TEARDOWN и др.),
  • поддържане на състояние на сесията чрез идентификатори (Session header).

Често използвани RTSP методи

  • OPTIONS — запитване кои методи поддържа сървърът;
  • DESCRIBE — заявка за описание на медията (обратно се връща SDP);
  • SETUP — конфигурира транспортни канали (unicast/multicast, UDP или interleaved TCP);
  • PLAY — стартира възпроизвеждане от зададено време;
  • PAUSE — временно спира възпроизвеждането;
  • TEARDOWN — затваря сесията и освобождава ресурси;
  • ANNOUNCE, RECORD, GET_PARAMETER, SET_PARAMETER — допълнителни методи за публикуване, запис и управление.

Транспорт и портове

По подразбиране RTSP използва TCP порт 554 за контролни връзки. За пренос на медия обикновено се използва RTP по UDP, придружен от RTCP за мониторинг и синхронизация. Ако UDP е блокиран или се желае мултиплексиране през една връзка, RTP/RTCP може да вървят "interleaved" през самата RTSP TCP сесия (технология, описана в RFC 2326). Заобикаляне на защитни стени и NAT често става чрез тунелиране през HTTP/HTTPS или чрез използване на TCP портове.

Сигурност и удостоверяване

  • RTSP поддържа стандартни механизми за удостоверяване (Basic и Digest), като Digest е предпочитан пред Basic.
  • За криптиране на управленските съобщения и/или медийния поток могат да се използват TLS/SSL (понякога обозначавано като RTSPS) или тунелиране през HTTPS.
  • Проблеми като незащитени настройки по подразбиране и открити портове правят RTSP устройства често цел на атаки; препоръчва се силни пароли, актуализации и използване на криптиране и VPN при нужда.

Приложения и ограничения

RTSP намери широко приложение в:

  • IP камери и системи за видеонаблюдение, където е важен контролът върху възпроизвеждането и ниската латентност;
  • услуги за видео при поискване (VoD) и IPTV;
  • системи за съвместна работа и дистанционно управление на стрийминг сървъри.

Ограничения и предизвикателства:

  • по-трудна работа през защитни стени и NAT при UDP
  • не винаги директна поддръжка в уеб браузъри без плъгини (поради което в уеб среда често се използват HLS, MPEG-DASH или WebRTC);
  • по-сложно stateful управление на сървъра в сравнение с простите HTTP GET потоци.

Кодеци и формати

RTSP не определя кодеци — той само договаря и управлява потока. Кодеците (например H.264/AVC, H.265/HEVC, MPEG-4, AAC и др.) и контейнерите се посочват в SDP описанието и самите данни се предават чрез RTP в зависимост от договорените формати.

Алтернативи

За стрийминг в уеб среда и масово доставяне към множество клиенти се предпочитат адаптивни HTTP технологии като HLS и MPEG-DASH. За приложения с много ниска латентност и двупосочна комуникация (напр. видео конференции) съвременните решения използват WebRTC. Въпреки това RTSP остава популярен за интеграция с локални системи за видеонаблюдение и професионални стрийминг решения.

Заключение: RTSP е гъвкав протокол за контрол на мултимедийни потоци, особено подходящ за сценарии, където е необходим пряк контрол върху възпроизвеждането и ниска латентност. За съвременни уеб приложения и масово доставяне обаче често се избират други подходи поради въпроси за съвместимост и сигурност.