Поиск камер¶
device.onvif.discovery
Sapsan умеет находить ONVIF-камеры в сети, принимать их события (движение, детекция людей и машин) и проверять камеру на совместимость.
Поиск камер¶
Sapsan обнаруживает камеры по WS-Discovery (мультикаст-запрос Probe и ответы ProbeMatch) и дополнительно понимает проприетарный протокол обнаружения Hikvision. Для каждой найденной камеры собираются адреса (XAddrs), имя и модель; повторные наблюдения одной камеры объединяются.
При работе через NAT адреса, которые камера сообщает о себе (snapshot-URL, RTSP-URL), автоматически переписываются на реально достижимый адрес устройства.
Настройка камеры через ONVIF¶
После обнаружения камеры Sapsan позволяет не только получить RTSP-адрес, но и настраивать саму камеру через ONVIF. Доступные параметры определяются моделью камеры и правами её учётной записи.
- Получите профили камеры методом
media/GetProfilesи найдите токен нужной конфигурации кодера. - Прочитайте
media/GetVideoEncoderConfigurationsи допустимые значения черезmedia/GetVideoEncoderConfigurationOptions. - Измените нужные поля полной конфигурации и передайте её через
media/SetVideoEncoderConfiguration. Так задаются разрешение и частота кадров, параметры битрейта и GOP, а также поддерживаемый камерой кодек. - Повторно прочитайте конфигурацию и проверьте входной RTSP-стрим. Камера может перезапустить кодер при применении изменений.
Для вызова используется POST /flussonic/api/onvif_call/{camera}/{service}/{method} на HTTP-интерфейсе Sapsan. {camera} — имя настроенного стрима, из входа которого берётся адрес камеры; для MBR используется первый вложенный источник. Пример получения профилей:
curl --user admin -X POST \
'http://sapsan.example.com:5080/flussonic/api/onvif_call/camera1/media/GetProfiles' \
-H 'Content-Type: application/json' --data '{}'
Авторизация запроса к Sapsan и учётная запись самой камеры независимы. По умолчанию учётные данные камеры берутся из URL её входа, а ONVIF использует порт 80. Заголовок x-onvif-auth: user:password переопределяет учётные данные камеры, x-onvif-port — её ONVIF-порт. Тело JSON передаёт параметры ONVIF-метода; ключи с $ обозначают XML-атрибуты, например $token.
Изменение конфигурации стрима через central управляет приёмом в Sapsan. Вызов SetVideoEncoderConfiguration изменяет настройки непосредственно на камере. Для PTZ и других операций см. управление ONVIF.