Skip to main content

Milestone Open Network Bridge

管理视讯播放

Last Updated: 6 minute read
版本2025r3
語言中文(繁體)

播放控制符合RTSP标准和ONVIF串流规格(https://www.onvif.org/profiles/specifications/ )。

录影摘要

您可以使用GetRecordingSummary命令取得装置上所有可用录制视讯的概观。这并非必须,但可在执行搜寻前提供有用的资讯。

您可以使用GetRecordingSummary和/或GetMediaAttributesMilestone Open Network Bridge来取得第一个和最后一个录影的时间戳记,但必须先在XProtect Management Client外挂程式上启用“使用摄影机设定”设定。

使用“Open Network Bridge信息”窗格中的“从摄像机进行配置”复选框。

使用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 );

搜寻录影

Search服务方法会FindRecordings在摄影机上启动非同步搜寻。FindRecordings传回参考搜寻结果的标记。即使只有一个录影可用,搜寻仍是取得该录影参考资料的适当方式。

使用下列必要参数传送请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伺服器从第三秒开始播放,直到第二十秒。

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装置可能支援反向播放。反向播放是以负值的“比例”标题栏位来表示。例如,若要反向播放而不遗失资料,将使用–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"

位置:

  • 速率是标尺和速度参数

  • 启动时间为资料库启动之后的秒数

以下是VLC媒体播放器的播放控制:

代码

目的

值

使用量

输入-重复=

输入重复

<integer [-2147483648 .. 2147483647]>

重复相同输入的次数。

开始时间=

開始時間

<浮动>

串流将在此位置开始(以秒为单位)。

停止时间=

停止时间

<浮动>

串流将在此位置停止(以秒为单位)。

执行时间=

执行时间

<浮动>

串流将在此期间(以秒计)执行。

输入快速搜寻

无输入快速搜寻

快速搜寻(预设已停用)

搜寻时偏好速度而非精确度。

速率=

播放速度

<浮动>

这定义了播放速度(标称速度为1.0),

input-list=

输入清单

<string>

您可以提供一个以逗号分隔的输入列表,这些输入将在正常输入之后拼接在一起。

input-slave=

输入从属(实验性)

<string>

这可让您同时从多个输入端播放。此功能是实验性的,并非支持所有格式。使用'#'分隔的输入清单。

撷取特定时间范围的录影

您可以使用RTSP连结clock中可选的URL参数,在特定时间点要求视讯播放。

格式为: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-2025年8月30日UTC时间14:00开始的串流。

固定字母Z表示UTC时区。即使您省略它(不建议),除非另有指定,否则时间仍将视为UTC。若要设定时区,请使用其中一个支援的后缀:

  • 固定字母p或+后面加上hhmm表示正的UTC偏移。例如,20250830T140000p0100表示UTC+01:00(中欧时间)。

  • 固定字母m后面加上hhmm表示UTC偏移量为负。例如,20250830T140000m0800表示UTC-08:00 (太平洋时间)。