RTSP в камерах видеонаблюдения¶
RTSP (Real Time Streaming Protocol, RFC 2326) — сетевой протокол прикладного уровня, предназначенный для установления и управления сеансами потоковой передачи мультимедийных данных в реальном времени. В контексте камер видеонаблюдения RTSP является стандартным способом получения видеопотока с IP-камеры напрямую — независимо от того, подключено ли устройство к видеорегистратору (NVR) или используется автономно.
¶Назначение и место в архитектуре видеонаблюдения
IP-камера — это по сути сетевое устройство, транслирующее видеопоток по сети. RTSP выступает «языком», на котором камера и клиентское устройство (видеорегистратор, компьютер, мобильное приложение) договариваются о параметрах сеанса: что именно передавать, в каком формате, как управлять воспроизведением.
Протокол не передаёт видеоданные сам по себе — он управляет сеансом. Фактическая передача потока выполняется по протоколу RTP (Real-time Transport Protocol), а контроль доставки — по RTCP (RTP Control Protocol). Такое разделение ролей заложено в архитектуру и позволяет гибко настраивать качество и надёжность доставки.
¶Основные возможности
RTSP поддерживает набор команд, сходных с методами HTTP:
- OPTIONS — запрос списка поддерживаемых методов;
- DESCRIBE — получение описания потока (медиа-описание в формате SDP);
- SETUP — установка транспортного сеанса (выбор портов, протокола доставки);
- PLAY — начало воспроизведения потока;
- PAUSE — приостановка;
- TEARDOWN — завершение сеанса.
В видеонаблюдении чаще всего используются DESCRIBE, SETUP, PLAY и TEARDOWN. Стандартный адрес потока IP-камеры имеет вид rtsp://<ip-адрес>:554/<путь>, например rtsp://192.168.1.10:554/stream1. Порт 554 закреплён за RTSP по умолчанию.
¶Кодеки и форматы потока
RTSP сам по себе не определяет формат видеоданных — кодек указывается в медиа-описании. В камерах видеонаблюдения наиболее распространены:
| Кодек | Особенности |
|---|---|
| H.264 (AVC) | Наиболее универсальный, поддерживается практически всеми камерами и NVR |
| H.265 (HEVC) | Сжатие примерно вдвое эффективнее H.264 при том же качестве; активно внедряется |
| MJPEG | Кадры JPEG подряд; высокая нагрузка на канал, но прост в обработке |
| H.266 (VVC) | Начинает появляться в новых моделях камер |
Часто камера транслирует несколько потоков одновременно: основной (Main Stream) в максимальном разрешении для записи и дополнительный (Sub Stream) в пониженном — для удалённого просмотра.
¶Аутентификация
Большинство камер поддерживают две схемы аутентификации в RTSP-сеансе:
- Basic — учётные данные передаются в открытом виде; уязвимо при передаче по незащищённому каналу;
- Digest — пароль не передаётся открыто, вместо него отправляется хеш; реализован в большинстве камер.
Адрес с учётными данными формируется как rtsp://login:password@192.168.1.10:554/stream1. Для шифрования транспортного слоя используется RTSPS (RTSP over TLS, порт 322), поддерживаемый не всеми камерами.
¶Транспортные режимы
На этапе SETUP клиент и камера согласовывают способ доставки RTP-пакетов:
- UDP (RTP over UDP) — пакеты идут напрямую по UDP; минимальная задержка, но потери возможны при нестабильной сети. Камера отправляет поток на адрес и порты, указанные клиентом, что требует корректной настройки NAT/межсетевого экрана.
- TCP (RTP over RTSP, interleaved) — RTP-пакеты инкапсулируются в TCP-соединение RTSP-сеанса; надёжнее в условиях потерь и проще для NAT, но добавляет задержку из-за механизмов контроля доставки.
- Multicast — поток рассылается групповой рассылкой; экономит канал при множестве одновременных зрителей, но требует поддержки multicast в сети.
В реальных сетях видеонаблюдения наиболее распространен TCP-режим как наиболее устойчивый, хотя для локальных сетей с гарантированной пропускной способностью предпочтительнее UDP.
¶Взаимодействие с другими протоколами
RTSP сосуществует с рядом смежных технологий:
- ONVIF — отраслевой стандарт интерфейсов IP-устройств видеонаблюдения; профиль G определяет, как через ONVIF получать RTSP-адрес потока камеры. Практически все камеры, поддерживающие ONVIF, предоставляют RTSP-поток по стандартному механизму.
- RTMP — протокол Adobe для трансляций в интернет (YouTube, Twitch); не применяется в видеонаблюдении, но иногда RTSP-поток транслируется в RTMP через медиа-серверы.
- WebRTC — используется для браузерного просмотра; поскольку RTSP не поддерживается браузерами напрямую, поток преобразуется через шлюзы (например, на базе GStreamer, FFmpeg или готовых серверов).
¶Практическое применение
Прямое подключение к RTSP-потоку камеры используется в нескольких сценариях:
- Подключение камеры к NVR — регистратор запрашивает поток по RTSP и записывает его.
- Просмотр на ПК — с помощью плееров VLC, IINA, или программ типа ONVIF Device Manager, TinyCam.
- Интеграция в системы видеонаблюдения — VMS-платформы (Milestone, AxxonNext, Qognify) получают потоки по RTSP от десятков и сотен камер.
- Обработка и аналитика — видеопоток передаётся в системы компьютерного зрения (OpenCV, нейросетевые аналитики) через FFmpeg или GStreamer.
¶Ограничения
RTSP не является браузерным протоколом: ни один современный браузер не воспроизводит RTSP-поток нативно. Для веб-просмотра требуется либо переход на HLS/DASH (с задержкой в несколько секунд), либо WebRTC-шлюз с задержкой в сотни миллисекунд. Кроме того, качество и стабильность RTSP-реализации сильно различаются между производителями камер: часть бюджетных моделей поддерживает только один поток, не имеет Digest-аутентификации или ограничивает число одновременных подключений (часто — двумя-тремя сессиями).
¶Историческая справка
RTSP разработан в 1996 году совместно усилиями RealNetworks, Netscape и Columbia University; спецификация опубликована как RFC 2326. В 2016 году вышла обновлённая версия RFC 7826, уточняющая семантику команд и транспортные режимы. Несмотря на появление более новых протоколов, RTSP остаётся де-факто стандартом индустрии видеонаблюдения: поддерживается подавляющим большинством IP-камер и регистраторов.
