Видеонаблюдение (RTSP-сервер)¶
Важно
Бета-версия 2.1. Описанное здесь есть только в бета-версии 2.1: она ставится из бета-репозитория и только с лицензией, в стабильной версии 2.0.2 и в демоверсии этого нет. Бета-версия поставляется без гарантий, поддержка — по возможности (Программа бета-тестирования).
С версии 2.1.0.485 узел может отдавать свои SPTS-потоки по RTSP — системам видеонаблюдения (VMS) и плеерам, например VLC и ffmpeg. С версии 2.1.0.493 по тому же адресу воспроизводится и архив потока. Сервер настраивается на экране «Видеонаблюдение» (Видеонаблюдение); в демоверсии его нет.
Прямой эфир¶
По умолчанию RTSP-сервер выключен: пока он выключен, узел не открывает RTSP-порт. Включённый сервер отдаёт каждый SPTS-поток узла; отдельного переключателя или списка доступа для потока нет. MPTS-потоки не отдаются.
Адрес потока:
rtsp://<хост>:<порт>/<поток>
Здесь <поток> — OTT-имя потока (то же, что в его адресах HLS, даже если OTT
выключен) или его номер. Порт по умолчанию — 554.
Видео H.264 или H.265 со звуком AAC или AC-3 передаётся отдельными RTP-потоками; звук в других кодеках не передаётся.
Поток, видео которого не H.264 и не H.265 (например, MPEG-2) или в котором нет видео, передаётся целиком как MPEG-TS поверх RTP.
RTP идёт внутри TCP-соединения RTSP или, с версии 2.1.0.494, по UDP. По UDP видео отправляется только на адрес самого клиента; multicast не предлагается. Клиенту за NAT нужен TCP: большинство плееров переходят на него сами. Архив по UDP всегда идёт в реальном времени. До версии 2.1.0.494 на запрос UDP сервер отказывал, и VLC и ffmpeg сами переходили на TCP.
Воспроизведение начинается со следующего ключевого кадра.
Примечание
ffmpeg в роли записывающего клиента (-c copy) не может поставить метку
времени первому кадру источника H.264 с B-кадрами. Плеер такой источник и
показывает, и записывает.
RTSPS (RTSP поверх TLS)¶
С версии 2.1.0.494 сервер принимает и RTSPS — RTSP в зашифрованном TLS-соединении, на отдельном порту:
rtsps://<хост>:<порт RTSPS>/<поток>
RTSPS включается на экране «Видеонаблюдение» переключателем «RTSPS (RTSP поверх TLS)»;
там же «Порт RTSPS», по умолчанию 322 (Видеонаблюдение). В настройках узла это
ключи rtsps-enable и rtsps-port секции surveillance.
Серверу нужны сертификат и ключ в формате PEM: файлы surveillance.crt и
surveillance.key в каталоге /opt/pss/config/cert. Без них RTSPS не запускается:
узел сообщает об ошибке в состоянии сервера в HTTP API (/data/surveillance) и
повторяет попытку каждые 10 с.
По RTSPS видео всегда идёт внутри зашифрованного соединения: на запрос UDP сервер отказывает, и клиент переходит на TCP. Открытым текстом ничего не передаётся.
Учётные записи каталога¶
С версии 2.1.0.497 к RTSP-серверу могут подключаться и учётные записи каталога LDAP или
Active Directory. Для этого на экране «Видеонаблюдение» выберите «Аутентификация» —
«Digest для логинов, Basic для каталога (только RTSPS)» (ключ rtsp-auth со значением
3) и включите RTSPS (RTSPS (RTSP поверх TLS)). Учётные записи каталога
входят только по RTSPS и по Basic, внутри TLS. По обычному RTSP Basic не предлагается и не
принимается: там входят только локальные RTSP-логины, по Digest. С версии 2.1.1.502 по
RTSPS в этом режиме и локальные логины входят по Basic (внутри TLS); клиенту, который
умеет только Digest, остаётся обычный RTSP с локальным логином. Каким группам разрешён RTSP и сколько сессий одновременно, задаёт «Доступ к
RTSP по группам» (Зрители и RTSP через каталог). С версии 2.1.0.499 учётной записью каталога
по RTSPS входят и системы видеонаблюдения и плееры на основе live555 (VLC, openRTSP и
многие VMS).
Воспроизведение архива¶
С версии 2.1.0.493 архив потока воспроизводится по тому же RTSP-адресу, что и прямой эфир. Нужен поток, который пишет архив, то есть с заданным «Хранилищем DVR» (DVR: архив потока); без хранилища воспроизведения архива нет.
Системы видеонаблюдения запрашивают интервал времени в UTC (по правилам ONVIF):
каждый кадр приходит со своим временем записи;
архив идёт в реальном времени, а если клиент просит — с той скоростью, какую выдерживает сеть;
работают пауза, продолжение и переход к другому моменту.
Плееры (VLC, ffmpeg) открывают адрес с параметрами:
rtsp://<хост>:<порт>/<поток>?t=<время Unix>[&d=<секунды>]
t — начало, в секундах Unix (UTC). Ползунок перемотки работает. С d
воспроизведение заканчивается через указанное число секунд.
Начало. Воспроизведение начинается с ключевого кадра в запрошенный момент или раньше него — до одного сегмента архива раньше. Если запрошенный момент раньше начала архива, воспроизведение начинается с начала архива.
Конец.
Если задан конец интервала (или
d), воспроизведение на нём останавливается.Если конец не задан, воспроизведение, догнав запись, переходит в прямой эфир.
Если запись остановилась (например, камера не работает), воспроизведение заканчивается на последнем записанном кадре.
Остановленная камера. Поток, от которого нет данных, всё равно можно открыть и воспроизвести его архив.
Ограничения:
Скорость только обычная: ускоренного и замедленного воспроизведения нет.
Поток, который передаётся целиком как MPEG-TS (без видео H.264 или H.265), доступен только в прямом эфире.
Открытые сессии видны на экране «Видеонаблюдение» (Видеонаблюдение) и в HTTP
API (/data/surveillance, Управление через HTTP API): для каждой видно, прямой эфир это или
архив, а для архива — момент последнего отданного кадра.