Функциональность


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

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

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

Видеоархив

Viinex 2.0 записывает видеоданные, полученные от камер, в папку на файловой системе, смонтированной на сервере, где Viinex работает. Это можеть быть либо файловая система на локальном носителе, либо смонтированная удаленная файловая система на NAS, либо локальная файловая система на удаленном хранилище iSCSI SAN.

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

Видеоданные хранятся в контейнерах стандартного формата MP4, и могут быть просмотрены общедоступными средствами, такими как Windows Media Player, iTunes, и т.п. Структура директорий, которая создается для хранения отдельных записей, прозрачна и очевидна, поэтому при необходимости пользователь может просматривать и даже изменять структуру хранимых данных (делать из нее выдержки, либо объединять фрагменты архива), - простым копированием папок и директорий. Разумеется, если такая активность нежелательна в конкретном окружении, - ее можно запретить, ограничив доступ пользователей к корневой папке видеоархива за счет установки ACL или POSIX-режима доступа.

Потоковое вещание видео

Потоковое вещание живого или архивного видео клиентам осуществляется по протоколу HLS. Аббревиатура HLS означает HTTP Live Streaming, то есть транспортным протоколом для доставки видео является в этом случае HTTP. Как следствие, такая система доставки данных хорошо работает в Internet, даже в присутствии со стороны клиента NAT, брандмауэров, ограничивающих трафик по портам, и т.п.

Использование HLS позволяет проигрывать видеопотоки от Viinex 2.0 в браузерах Apple Safari (в том числе на iOS) и Microsoft Edge - нативно, без дополнительных компонентов. В браузерах Google Chrome и Mozilla Firefox поддерживается часть HTML5 спецификации, называемая Media Streaming Extensions (MSE), что делает возможным проигрывание в них HLS-видеопотока также нативно, за счет исполнения кода на Javascript, - например, одним из готовых плееров, таким как hls.js. Итак, для проигрывания видеопотока, раздаваемого Viinex 2.0, требуется лишь ввести соответствующий URL в адресной строке браузера, либо в javascript-коде направить на этот URL имеющийся на веб-странице тег<video>. Если стоит задача воспроизведения видео в нативном клиентском приложении ("rich client application"), - одним из решений является внедрение в него компонента с браузером, который будет направлен на нужный URL.

В Viinex 2.0 также реализован RTSP сервер для вещания видео на традиционные RTSP-клиенты. Он поддерживает RTP с транспортом UDP unicast, multicast и TCP, реализует digest-аутентификацию, что делает Viinex удобным RTSP прокси к источникам видео. Конечно, RTSP-клиент Viinex 2.0 совместим с его же RTSP-сервером. Это позволяет передавать видеопоток от одного экземпляра Viinex 2.0 на другие экземпляры, которые, в свою очередь, могут раздавать полученные данные по протоколу RTSP или по HLS. Тем самым, с Viinex 2.0 становится возможным масштабирование вещания видеоданных от одного источника к неограниченному числу удаленных клиентов.

Экспорт видео

Процедура экспорта видеофрагмента, осуществляемая с Viinex 2.0, так же проста, как скачивание файла при наличии web-ссылки. Клиентский код решает, за какой временной интервал нужно запросить видео, и по какой камере, - и осуществляет один HTTP запрос. Экспортированные данные клиент получает в теле HTTP ответа.

В качестве выходных форматов для экспорта видео Viinex 2.0 поддерживает контейнеры MP4 и MPEG TS. Таким образом, скачиваемый файл сразу может быть просмотрен стандартными плеерами, встроенными в ОС, - даже на Windows 7 более чем 10-летней давности. Для воспроизведения видео, экспортированного с помощью Viinex, не требуется устанавливать сторонние плееры, кодек-паки или что-либо еще.

Управление PTZ камерами

Viinex позволяет управлять поворотными камерами с использованием простой команды на управление одной строчкой HTTP запроса. Viinex 2.0 включает запросы для:

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

    Viinex 2.0 не хранит состояния, связанного с PTZ устройством, и не выполняет дополнительных проверок аргументов при их передаче устройству. Наиболее сложный вызов PTZ API в Viinex принимает всего три аргумента - значения для координат pan, tilt и zoom.

    Внешнее управление записью

    Для приложений, использующих Viinex 2.0, доступен программный интерфейс, который позволяет этим приложениям решать, когда следует начинать и останавливать запись видео в архив. Для удобства, один удаленный вызов (HTTP запрос) может быть использован для того чтобы начать или остановить запись для заранее сформированной группы камер. В Viinex поддерживается буфер предзаписи, так же как и таймаут для постзаписи.

    Получение событий и правила для управления записью

    Viinex 2.0 содержит базовые видеодетекторы. Кроме этого Viinex 2.0 использует описанный в спецификации ONVIF механизм подписки, который позволяет получать события непосредственно от IP камер. Это позволяет решить две задачи: 1) получение событий от камер в клиентском приложении в реальном времени, через интерфейс web sockets, и 2) задание в Viinex правил для автоматического включения и выключения записи видео, когда возникает "тревожное" событие. Как и в случае внешнего управления записью, эти правила управляют группами камер, и это упрощает настройку Viinex в типичных сценариях.