Использование клиентов ONVIF для просмотра видеопотоков

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

Если к вашему видео применяется постоянная маска конфиденциальности, вы не сможете передавать видео с клиента ONVIF.

В этом разделе приведены примеры выполнения подключения к Milestone Open Network Bridge.

Использование сетевого видеоклиента для просмотра видео в режиме реального времени

В этом примере описано, как установить ONVIF Device Manager и настроить его для передачи видео в режиме реального времени из системы XProtect.

ONVIF Device Manager ― это бесплатный сетевой видеоклиент от iDeviceDesign с открытым исходным кодом, который совместим со стандартами ONVIF. Этот инструмент позволяет легко обнаруживать и просматривать видео с камер, совместимых с ONVIF, в сети. Однако ONVIF Device Manager передает только видео в режиме реального времени. Кроме того, данные видео из потока нельзя записать и сохранить.

ONVIF Device Manager не поддерживает FIPS 140-2 или кодек H.265.

Прежде чем приступить, вам потребуются следующие сведения:

  • учетные данные пользователя, который был создан для Milestone Open Network Bridge;
  • IP-адрес или имя компьютера, где установлен Milestone Open Network Bridge.

Чтобы установить ONVIF Device Manager, выполните следующие действия:

  1. Перейдите на сайт Sourceforge ONVIF Device Manager (https://sourceforge.net/projects/onvifdm/), загрузите и запустите программу установки. Установить ONVIF Device Manager можно на любом компьютере.
  2. По завершении установки на рабочем столе появится значок. Дважды нажмите этот значок, чтобы запустить ONVIF Device Manager.
  3. При запуске ONVIF Device Manager устройства, совместимые с ONVIF, автоматически обнаруживаются в сети. Инструмент может не обнаруживать Milestone Open Network Bridge.
    • В случае обнаружения перейдите к пункту 6.
    • Если обнаружение не удалось, добавьте компонент Bridge вручную. Перейдите к пункту 4.
  4. Чтобы добавить Milestone Open Network Bridge, нажмите ДОБАВИТЬ.
  5. В диалоговом окне Добавить устройство в поле URI укажите имя или IP-адрес компьютера, на котором установлен Milestone Open Network Bridge, и номер порта ONVIF. Строка должна выглядеть, например, следующим образом: http://[IP-адрес]:580/onvif/device_service.
  6. После добавления компонента Bridge он появится внизу списка Устройство. Выберите его.
  7. Введите учетные данные пользователя, который создан для клиента ONVIF, над списком. Если это пользователь Windows, нужно ввести доменное имя пользователя \.

Использование универсального проигрывателя для просмотра видеопотока

В этом примере показано, как использовать универсальный проигрыватель VLC для получения и просмотра потока видеоданных в режиме реального времени или записанного видео с камеры в системе XProtect.

Универсальный проигрыватель VLC ― это бесплатный проигрыватель мультимедиа с открытым исходным кодом от VideoLan, который поддерживает разные протоколы потоковой передачи, в том числе RTSP. Например, проигрыватель VLC будет полезен, если нужно очень быстро подключиться к камере или просто проверить соединение с камерой.

При подключении к камере для просмотра записанного видео, Milestone Open Network Bridge передает эпизоды видео, начиная с первого эпизода.

Перед началом работы узнайте у лица, которое является администратором установленного XProtect, следующее:

  • учетные данные учетной записи пользователя, который назначен Milestone Open Network Bridge;
  • IP-адрес или имя компьютера, где установлен Milestone Open Network Bridge.

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

  • Если вы используете rtsp://[rtsp_server]:554/live/[camera_id]

    вам потребуется GUID устройства, с которого вы хотите передавать видео.

    GUID камеры можно найти в Management Client. Чтобы найти GUID, выберите сервер записи, на который добавлена камера, и выберите камеру. Перейдите на вкладку Информация, нажмите и удерживайте кнопку CTRL на клавиатуре, затем выберите предварительный просмотр видео с камеры.

  • Если вы используете rtsp://[rtsp_server]:554/live/[camera_id]/[stream_number]

    вам потребуется номер потока. Это числовое значение от 0 до 15.

  • Если вы используете rtsp://[rtsp_server]:554/live/[camera_id]/[stream_id]

    вам потребуется идентификационный номер потока. Это номер GUID, который определяет поток в VMS XProtect.

    Текущие многопотоковые GUID для VMS XProtect, которые определяют потоки, назначаются следующим образом:

    • 28dc44c3-079e-4c94-8ec9-60363451eb40 ― для потока 0

    • 28dc44c3-079e-4c94-8ec9-60363451eb41 ― для потока 1

    • ...

    • 28dc44c3-079e-4c94-8ec9-60363451eb4f ― для потока 15

Это описание основано на VLC 2.2.4 для Windows.

Для установки универсального проигрывателя VLC и его подключения к системе XProtect выполните следующие действия:

  1. Перейдите на страницу https://www.videolan.org/vlc/ и загрузите программу установки проигрывателя VLC.
  2. Запустите программу установки и выполните инструкции из каждого пункта.
  3. На панели инструментов нажмите Мультимедиа и выберите Открыть сетевой поток.
  4. В диалоговом окне Открыть мультимедиа введите следующую строку RTSP. Замените переменные в квадратных скобках [IP-адрес Milestone Open Network Bridge] и [GUID камеры] верными данными:
    • Для просмотра видеопотока в режиме реального времени введите rtsp://[Milestone Open Network Bridge IP Address]:554/live/[Camera GUID].
    • Для просмотра записанного видео введите rtsp://[Milestone Open Network Bridge IP Address]:554/vod/[Camera GUID].
  5. Нажмите Воспроизведение и введите имя пользователя и пароль учетной записи пользователя, которая была добавлена в Milestone Open Network Bridge.

Управление воспроизведением видео

Средства управления воспроизведением соответствуют стандартам RTSP и спецификации потоковой передачи ONVIF (https://www.onvif.org/profiles/specifications/).

Сводка записей

Можно получить сводку всех записанных видео, доступных на устройстве, с помощью команды GetRecordingSummary . Это необязательно, но таким способом можно получить полезную информацию до проведения поиска.

Можно использовать GetRecordingSummary и (или) GetMediaAttributes, чтобы получить метку времени первой и последней записи, но сначала нужно включить параметр Использовать конфигурацию камер во встраиваемом расширении Milestone Open Network Bridge в XProtect Management Client.

Use configuration from cameras check box in the Open Network Bridge Information pane.

Создайте прокси-сервер для службы RecordingSearch с помощью конечной точки службы, полученной от GetServices. Создайте объекты запроса и ответа, затем вызовите GetRecordingSummary.

SearchBindingProxy searchProxy( &soapSearch );

std::string searchEndpoint = "http://" + host + "/onvif/recording_search_service";

_tse__GetRecordingSummary tse__GetRecordingSummary;

_tse__GetRecordingSummaryResponse tse__GetRecordingSummaryResponse;

result = searchProxy.GetRecordingSummary( searchEndpoint.c_str(), NULL,

   &tse__GetRecordingSummary, &tse__GetRecordingSummaryResponse );

Поиск записей

Метод FindRecordings службы «Поиск» запускает асинхронный поиск на камере. FindRecordings возвращает токен со ссылкой на результаты поиска. Даже если будет найдена только одна запись, поиск поможет получить ссылку на эту запись.

Отправьте запрос FindRecordings со следующими обязательными параметрами:

  • SearchScope > IncludedSources > Token  ― необходимо указать номер GUID камеры
  • SearchScope > RecordingInformationFilter  ― строка со следующими параметрами:
    • timestamp (в формате UTC)
    • maxTimeBefore (время до нужной метки времени в миллисекундах)
    • maxCountBefore (максимальное количество дорожек до запрошенной метки времени)
    • maxTimeAfter (время после нужной метки времени в миллисекундах)
    • maxCountAfter (максимальное количество дорожек после запрошенной метки времени)

Пример:

boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20

Вы получите ответ с SearchToken, который будет уникальным для критериев поиска.

Передайте SearchToken в GetRecordingSearchResults , и вы получите список со всеми дорожками, отвечающими критериям поиска.

Запуск воспроизведения

При просмотре воспроизведения видео скорость по умолчанию равна 1 (нормальное воспроизведение вперед).

Воспроизведение запускается методом RTSP PLAY. Можно указать диапазон. Если диапазон не указан, поток воспроизводится с начала и до конца или, если приостановить поток, начинается с того места, где было приостановлено. В этом примере выражение Range: npt=3-20 дает серверу RTSP команду начать воспроизведение с третьей секунды и до 20-й секунды.

Пример:

PLAY rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373 RTSP/1.0

CSeq: 123

Session: 12345678

Require: onvif-replay

Range: npt=3-20

Rate-Control: no

Воспроизведение назад

Устройства ONVIF МОГУТ поддерживать воспроизведение назад. Для указания о воспроизведении назад используется поле заголовка Scale с отрицательным значением. Например, для воспроизведения назад без потери данных будет использоваться значение -1,0.

Milestone Open Network Bridge поддерживает значения [-32 : 32].

PLAY rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373 RTSP/1.0

CSeq: 123

Session: 12345678

Require: onvif-replay

Range: clock=20090615T114900.440Z

Rate-Control: no

Scale: -1.0

Изменение скорости

Для управления скоростью используется заголовок RTSP Rate-Control. Если Rate-Control=yes, то скорость воспроизведения контролирует сервер. Поток передается в режиме реального времени с помощью стандартных механизмов синхронизации RTP. Если Rate-Control=no, то скорость воспроизведения контролирует клиент. Как правило, воспроизведение с управлением скоростью используется отдельными клиентами, не относящимися к ONVIF, т.к. они не будут указывать Rate-Control=no.

Для управления скоростью воспроизведения на стороне клиента используйте имеющиеся контроллеры. Например, для универсального проигрывателя VLC выберите Воспроизведение > Скорость > Быстрее или Медленнее. Таким образом скорость увеличится или уменьшится с шагом 0,5.

Функции Точное ускорение и Точное замедление изменяют скорость с шагом 0,25.

Управление воспроизведением в универсальном проигрывателе VLC с помощью записей командной строки

Для управления воспроизведением в универсальном проигрывателе VLC можно использовать командные строки. Подробные сведения приведены в справке по использованию командной строки для VLC (https://wiki.videolan.org/VLC_command-line_help/).

Такие команды позволяют, например, выполнять воспроизведение назад и менять время начала воспроизведения.

Пример типичной командной строки:

>vlc.exe --rate=-1.0 --start-time=3600 "rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"

В случаях, когда:

  • Rate ― это параметр масштаба и скорости
  • Start-time ― это время в секундах после запуска базы данных

Далее приведены средства управления воспроизведением для проигрывателя VLC:

Код

Что можно сделать с помощью кода?

input-repeat=

<integer [-2147483648 .. 2147483647]>

Повторение входных сигналов

Количество раз повторения одного и того же входного сигнала

start-time=

<float>

Время начала

Поток начнется в этой позиции (в секундах)

stop-time=

<float>

Время остановки

Поток остановится в этой позиции (в секундах)

run-time=

<float>

Продолжительность

Поток будет выполняться в течение этого времени (в секундах)

input-fast-seek

no-input-fast-seek

Быстрый поиск (отключен по умолчанию)

В ходе поиска предпочтение отдается скорости, а не точности.

rate=

<float>

Скорость воспр.

Этот параметр определяет скорость воспроизведения (номинальная скорость ― 1,0).

input-list=

<string>

Список входных сигналов

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

input-slave=

<string>

Подчиненный входной сигнал (экспериментальная функция)

Позволяет выполнять воспроизведение одновременно от нескольких источников. Это экспериментальная функция, поддерживаются не все форматы. Введите список источников входных сигналов через символ #.