Получение видео


Viinex предоставляет функциональность для работы с видео, с помощью которой вы сможете легко добавить различные видеоисточники в ваше приложение:

  • IP-видеокамеры
  • USB-видеокамеры (вебкамеры)
  • Сторонние системы видеонаблюдения (отдельный раздел)

IP-видеокамеры

RTSP URL и ONVIF

Viinex поддерживает возможность получения видео от IP-камер и IP-видеокодеров, которые реализуют протоколы RTSP+RTP и видеокодек H.264. Для доступа к таким устройствам Viinex поддерживает методы аутентификации “Basic” и “Digest”, предусмотренные спецификацией RTSP. Для протокола передачи данных RTP в Viinex доступны его реализации поверх UDP unicast, UDP multicast, а также TCP (RTP over RTSP, interleaved mode). Viinex можно настроить на работу с RTSP-источником видео с известным URL – например, с синтетическим источником видео вроде потокового сервера VLC. Для работы с видеокамерами можно как задать RTSP URL камеры вручную, так и позволить Viinex автоматически выяснить этот URL по протоколу ONVIF.

Автоматический поиск камер в сети (discovery)

Viinex предоставляет встраивающему приложению через API функциональность автоматического обнаружения ONVIF-устройств в сети (discovery), а также обращения к устройству напрямую через HTTP POST (probe).

Управление PTZ

Viinex позволяет управлять поворотными камерами по ONVIF-спецификации с использованием простой команды на управление одной строчкой HTTP-запроса. Таким образом, наиболее сложный вызов PTZ API в Viinex принимает всего три аргумента – значения для координат pan, tilt и zoom.

Viinex включает запросы для:

  • управления пресетами поворотной камеры;
  • перемещения камеры в заданный пресет;
  • перемещения камеры в произвольную позицию.

Встроенные в IP-камеры видеодетекторы

Спецификация ONVIF унифицирует протокол для получения пользовательскими приложениями событий от оборудования для IP-видеонаблюдения – в частности, от встроенных видеодетекторов.

Viinex использует описанный в спецификации ONVIF механизм подписки, который позволяет получать события непосредственно от IP-видеокамер (подробнее) и предоставляет их по API для встраивающего приложения. Примеры предоставляемых событий через API.

Viinex реализует правила для обработки таких событий, чтобы по ним или с помощью скриптов управлять записью видео. Правила, реализованные в Viinex, позволяют комбинировать события от нескольких детекторов, в том числе на разных камерах – например, чтобы управлять записью видео сразу по группе камер.
Это позволяет решить две задачи: получение событий от камер в клиентском приложении в реальном времени, через интерфейс web sockets и задание правил, например, для автоматического включения и выключения записи видео, когда возникает “тревожное” событие. Как и в случае внешнего управления записью, эти правила управляют группами камер, и это упрощает настройку Viinex в типичных сценариях.

USB-видеокамеры (веб-камеры)

DirectShow и Video4Linux

Viinex поддерживает работу с RAW-видеоисточниками. Реализована поддержка USB-видеокамер, а также устройств видеозахвата (грабберов) через программные интерфейсы для операционных система Windows и Linux. Видео c таких устройств далее может быть использовано для видеозаписи или видеостриминга стандартными средствами Viinex.

Автоматический поиск USB-камер

Для удобства подключения Viinex предоставляет через API встраивающему приложению функциональность автоматического обнаружения таких устройств обычным HTTP-запросом, выдавая в ответ список адресов таких устройств, зарегистрированных ОС Windows или Linux.

Кодирование H.264

Видео USB-камеры захватываются в raw-формате, то есть в несжатом виде. Для записи видео в архив и для отправки видео по сети его необходимо сжать. Viinex реализует функцию сжатия видео, кодируя его с помощью алгоритма Advanced Video Coding (AVC) H.264 в соответствии с лицензией AVC Portfolio License.

Выбор кодека H.264 обусловлен тем, что со времени своего создания он глубоко проник в сферы, связанные с работой с видео, воспроизводится практически на любом устройстве и не имеет никаких проблем с поддержкой в практически в любых web-приложениях, т.к. нативно ими поддерживается (caniuse H.264), в отличие от текущей ситуации с H.265 (caniuse H.265).

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