Skip to main content

Milestone Open Network Bridge

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

Last Updated: 4 minute read
Версия2025r3
ЯзыкРусский

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

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

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

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

Флажок "Использовать конфигурацию с камер" на панели "Информация о Open Network Bridge".

RecordingSearchGetServicesСоздайте прокси-сервер для службы с помощью конечной точки службы, возвращаемой. 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 );

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

FindRecordingsFindRecordings Метод службы поиска запускает асинхронный поиск по камере. возвращает токен, который ссылается на результаты поиска. Несмотря на то, что доступна только одна запись, поиск является лучшим способом получить ссылку на эту запись.

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

  • SearchScope > IncludedSources > Token ― необходимо указать номер GUID камеры

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

    SearchScope > RecordingInformationFilter ― строка со следующими параметрами:

    • timestamp (в формате UTC)

    • maxTimeBefore (время до нужной метки времени в миллисекундах)

    • maxCountBefore (максимальное количество дорожек до запрошенной метки времени)

    • maxTimeAfter (время после нужной метки времени в миллисекундах)

    • maxCountAfter (максимальное количество дорожек после запрошенной метки времени)

Пример:

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

Передайте 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

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

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

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

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

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

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

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

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

>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>

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

Получение записей из заданного временного диапазона

Можно запросить воспроизведение видео в определенный момент времени, используя необязательный параметр URL clock в ссылке RTSP.

Формат: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-[end_time]Z.

Параметры [start_time] и [end_time] обычно указываются в формате yyyyMMddTHHmmssZ (год, месяц, день, буква T, часы в 24-часовом формате, минуты, секунды и буква Z).

end_time Свойство необязательно. rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-Чтобы запросить только время начала, используйте формат:. rtsp://onbhost:554/vod/3bf3b583-768a-43c7-ae74-38df708c4dbf?clock=20250830T140000Z- Например, он получит поток, который начинается в 14:00 UTC 30 августа 2025 года.

Z Фиксированная буква означает часовой пояс UTC. Даже если вы пропустите его (не рекомендуется), время по-прежнему считается UTC, если не указано иное. Для установки часового пояса используйте один из поддерживаемых суффиксов:

  • p+hhmm Фиксированная буква &quot; или &quot;, за которой следует &quot;, указывает на положительное смещение UTC. 20250830T140000p0100 Например, означает UTC+01:00 (центральноевропейское время).

  • mhhmm Фиксированная буква, за которой следует, обозначает отрицательное смещение UTC. 20250830T140000m0800 Например, означает UTC-08:00 (тихоокеанское время).