Перейти к основному содержимому

02 RTSP дистанционный пульт для видеопотока

RTSP: протокол управления видеопотоком

RTSP

В этом разделе мы разберёмся, как протокол RTSP используется для управления видеопотоками в сетях, чем он отличается от протокола RTP и почему он так важен при работе с IP‑камерами и системами видеонаблюдения.

1. Общая идея RTSP: «дистанционный пульт» для видео

RTSP (Real Time Streaming Protocol) — это сетевой протокол, предназначенный не для передачи самих аудио‑ и видеоданных, а для управления сеансом воспроизведения медиа.

Можно провести аналогию:

  • Видеопоток (аудио/видео данные) — это сам телевизор с каналом.
  • RTSP — это пульт дистанционного управления, который говорит, что делать: запустить, остановить, переключить и т.д.

Ключевой момент:

  • RTSP не возит кадры и звуковые сэмплы по сети.
  • Он отправляет команды между клиентом (например, видеоклиентом или ПО видеонаблюдения) и сервером (IP‑камерой, медиасервером или кодером), чтобы:
    • установить сеанс;
    • начать передачу медиаданных;
    • приостановить или завершить этот процесс;
    • запросить описание того, что именно будет передаваться.

Сами медиаданные (видеокадры, аудиосэмплы) передаются протоколом RTP.


2. Основные команды RTSP и их роль

RTSP использует набор стандартных команд (методов), которые очень похожи по стилю на HTTP‑запросы, но выполняют совсем другие задачи. Рассмотрим наиболее важные.

2.1 Команда SETUP

SETUP — команда для установки параметров сеанса медиапередачи.

Когда клиент хочет начать получать поток от камеры или сервера, он сначала отправляет команду SETUP. В ответ стороны договариваются:

  • каким протоколом будет идти медиа (обычно RTP);
  • по каким портам будет происходить передача;
  • будет ли использоваться UDP или TCP;
  • какие конкретно потоки (например, видео и отдельно аудио) будут передаваться.

Упрощённо:
SETUP — это «настройка соединения перед стартом».

Пример из практики:
ПО видеонаблюдения подключается к IP‑камере по RTSP. Сначала оно отправляет DESCRIBE (о нём ниже), чтобы узнать доступные потоки, затем с помощью SETUP «договаривается» о том, каким образом камера будет отправлять видео и аудио.


2.2 Команда PLAY

PLAY — команда для запуска воспроизведения медиапотока.

После того как параметры сеанса согласованы (через SETUP), клиент отправляет PLAY, чтобы камера или сервер начали передавать медиаданные (обычно по RTP).

Можно считать, что:

  • PLAY = «Начать трансляцию» для конкретного сеанса.

Например, в системе видеонаблюдения:
оператор выбирает камеру, программа до этого уже настроила сеанс, и по команде PLAY на экран начинают приходить живые кадры с камеры с минимальной задержкой.


2.3 Команда PAUSE

PAUSE — команда для приостановки воспроизведения медиапотока без полного разрыва сеанса.

Особенности:

  • Сеанс RTSP остаётся установленным.
  • Параметры соединения не теряются.
  • Передача медиаданных по RTP временно останавливается.

Это похоже на кнопку «пауза» в видеоплеере:
соединение есть, но данные не идут, пока вы снова не нажмёте «play».

Это удобно, когда нужно:

  • временно приостановить просмотр потока;
  • не тратить полосу сети и ресурсы обработки;
  • оставить возможность быстро продолжить воспроизведение без нового установления сеанса.

2.4 Команда TEARDOWN

TEARDOWN — команда для полного завершения RTSP‑сеанса.

Что происходит при TEARDOWN:

  • Сеанс управления разрывается.
  • Передача медиаданных прекращается.
  • Ресурсы на стороне сервера и клиента (буферы, порты, сессии) освобождаются.

Можно говорить, что:

  • TEARDOWN = «Завершить сеанс, закрыть всё».

Пример:
оператор закрывает окно с отображением камеры в программе. Клиент отправляет TEARDOWN, камера перестаёт слать данные, и система освобождает ресурсы как на стороне клиента, так и камеры.


2.5 Команда DESCRIBE

DESCRIBE — команда для получения описания медиа‑потока.

Клиент с её помощью спрашивает у сервера:

  • какие потоки доступны (видео, аудио, несколько вариантов качества и т.п.);
  • какие используются кодеки (например, H.264 для видео, AAC для аудио);
  • какие параметры у потока (частота кадров, разрешение, частота дискретизации звука и т.д.).

Ответ обычно приходит в формате SDP (Session Description Protocol), который описывает структуру и параметры медиасеанса.

По сути:

  • DESCRIBE = «Расскажи, что именно ты можешь мне передать и как это устроено».

Пример:
клиент отправляет DESCRIBE IP‑камере и узнаёт, что камера предоставляет:

  • основной поток: H.264, Full HD 25 fps;
  • дополнительный поток: H.264, 640×360, 10 fps для низкой полосы.

Дальше клиент решает, какой поток использовать и выполняет SETUP уже для выбранного варианта.


3. Как RTSP связан с RTP и RTCP

Чтобы понять место RTSP в системе, важно разграничить задачи разных протоколов.

3.1 RTP: транспорт медиаданных

RTP (Real-time Transport Protocol) — это протокол, который непосредственно переносит медиаданные:

  • видеокадры (frame) после кодирования;
  • аудиосэмплы (sample) после кодирования.

Он работает поверх UDP или TCP и добавляет к каждому пакету:

  • номер последовательности (чтобы восстанавливать порядок);
  • временную метку (для синхронизации и правильного воспроизведения по времени).

Таким образом, именно RTP «несёт» аудио и видео по сети.

3.2 RTCP: контроль качества и статистика

RTCP (RTP Control Protocol) — протокол, который дополняет RTP и используется для:

  • мониторинга качества соединения;
  • передачи статистики (потерь пакетов, задержек, джиттера);
  • синхронизации отдельных потоков (например, видео и аудио между собой).

RTCP пакеты передаются гораздо реже, чем RTP, и не содержат медиа, а только служебную информацию.

Можно сказать:

  • RTP — это «грузовик с кадрами»,
  • RTCP — это «сопровождающий отчёт о состоянии дороги и груза».

3.3 Роли RTSP и RTP/RTCP в одном сеансе

Комбинация протоколов обычно выглядит так:

  1. Клиент по RTSP (через команды DESCRIBE, SETUP, PLAY и др.) договаривается с сервером о параметрах передачи медиа.
  2. После успешного SETUP и PLAY медиаданные начинают идти по RTP.
  3. В параллель к RTP идут пакеты RTCP, содержащие статистику и контрольную информацию.
  4. При PAUSE/TEARDOWN по RTSP клиент останавливает или завершает весь процесс.

Итого:

  • RTSP управляет сеансом,
  • RTP обеспечивает фактическую доставку медиакадров
  • RTCP отвечает за статистику и контроль качества.

4. Использование RTSP в IP‑камерах

4.1 RTSP и доступ к IP‑камерам

IP‑камера — это видеокамера с сетевым интерфейсом (Ethernet, Wi‑Fi), которая сама кодирует видео и отдаёт его по сети. Для доступа к этому видеопотоку в большинстве случаев используется именно RTSP.

Типичная схема:

  1. Клиент (ПО видеонаблюдения, медиасервер, плеер вроде VLC) подключается к IP‑камере по RTSP‑URL.
  2. Выполняет DESCRIBE → узнаёт параметры потока.
  3. Выполняет SETUP → согласует порты и транспорт для RTP.
  4. Выполняет PLAY → получает живое видео и звук по RTP.

Преимущества RTSP в контексте камер:

  • поддерживается большинством производителей;
  • позволяет гибко управлять сеансами;
  • хорошо подходит для задач мониторинга в реальном времени с относительно низкой задержкой.

4.2 RTSP и PTZ‑камеры

PTZ‑камера (Pan-Tilt-Zoom) — это тип IP‑камеры, которая умеет:

  • поворачиваться по горизонтали (Pan);
  • наклоняться по вертикали (Tilt);
  • изменять масштаб (Zoom).

Для таких камер RTSP выполняет ту же роль:

  • предоставляет видеопоток (через управление RTSP, а медиа идёт по RTP);
  • может использоваться параллельно с протоколами управления поворотом/зумом (например, VISCA over IP, ONVIF PTZ, веб‑API).

Важно различать:

  • протокол видеосигнала — RTSP (управление) + RTP (медиа);
  • протоколы управления движением/зумом — отдельные протоколы, не связанные напрямую с RTSP.

На практике часто происходит так:

  • видео от PTZ‑камеры вы смотрите через RTSP;
  • управлением поворотом и зумом занимаетесь через ONVIF или другой управляющий протокол.

5. RTSP и ONVIF: стандарт в видеонаблюдении

ONVIF — это международный стандарт для взаимодействия между IP‑камерами, видеорегистраторами, ПО видеонаблюдения и прочими устройствами. Его цель — обеспечить совместимость оборудования разных производителей.

RTSP является ключевым элементом этого стандарта:

  • ONVIF определяет, как находить камеры в сети, как их конфигурировать, как управлять PTZ и т.д.
  • Для получения видеопотока чаще всего используется именно RTSP‑URL, который камера предоставляет в рамках ONVIF.

То есть ONVIF «говорит»:

  • как программно узнать, какие потоки доступны у камеры;
  • как получить RTSP‑ссылку на нужный поток;
  • как дальше работать с камерой.

А уже по этой RTSP‑ссылке клиент устанавливает RTSP‑сеанс и получает медиаданные по RTP.

Благодаря этому связка:

  • ONVIF + RTSP + RTP/RTCP

становится стандартным решением для:

  • систем видеонаблюдения;
  • многоканальных систем мониторинга;
  • различных приложений, где важно получать живое видео от большого количества IP‑камер.