02 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 в одном сеансе
Комбинация протоколов обычно выглядит так:
- Клиент по RTSP (через команды DESCRIBE, SETUP, PLAY и др.) договаривается с сервером о параметрах передачи медиа.
- После успешного SETUP и PLAY медиаданные начинают идти по RTP.
- В параллель к RTP идут пакеты RTCP, содержащие статистику и контрольную информацию.
- При PAUSE/TEARDOWN по RTSP клиент останавливает или завершает весь процесс.
Итого:
- RTSP управляет сеансом,
- RTP обеспечивает фактическую доставку медиакадров
- RTCP отвечает за статистику и контроль качества.
4. Использование RTSP в IP‑камерах
4.1 RTSP и доступ к IP‑камерам
IP‑камера — это видеокамера с сетевым интерфейсом (Ethernet, Wi‑Fi), которая сама кодирует видео и отдаёт его по сети. Для доступа к этому видеопотоку в большинстве случаев используется именно RTSP.
Типичная схема:
- Клиент (ПО видеонаблюдения, медиасервер, плеер вроде VLC) подключается к IP‑камере по RTSP‑URL.
- Выполняет DESCRIBE → узнаёт параметры потока.
- Выполняет SETUP → согласует порты и транспорт для RTP.
- Выполняет 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‑камер.