使用 ONVIF 客户端查看视频流

您所在的位置:网站首页 怎么看摄像头是否支持onvif协议呢 使用 ONVIF 客户端查看视频流

使用 ONVIF 客户端查看视频流

2024-06-29 13:54| 来源: 网络整理| 查看: 265

使用 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 创建的用户的登录凭据 安装有 Milestone Open Network Bridge 的计算机的 IP 地址或计算机名称

若要安装 ONVIF Device Manager,请遵循以下步骤:

转至 Sourceforge ONVIF Device Manager 网站 (https://sourceforge.net/projects/onvifdm/),然后下载并运行安装程序。您可以将 ONVIF Device Manager 安装在任何计算机上。 安装完成时,会在桌面上提供一个图标。双击图标启动 ONVIF Device Manager。 启动 ONVIF Device Manager 时,它会自动发现网络上符合 ONVIF 标准的设备。但是,它可能无法发现 Milestone Open Network Bridge。 在这种情况下,请转到步骤 6否则,手动添加桥。继续执行步骤 4 要添加 Milestone Open Network Bridge,请单击添加。 在添加设备对话框中的 URI 字段中,提供安装有 Milestone Open Network Bridge 的计算机的名称或 IP 地址,以及 ONVIF 端口号。例如,字符串应为:http://[IP 地址]:580/onvif/device_service。 添加桥之后,它会显示在设备列表底部。选择它。 在列表上方输入为 ONVIF 客户端创建的用户的登录凭证。如果这是个 Windows 用户,您必须输入域名\用户名称。 使用媒体播放器查看视频流

本示例介绍如何使用 VLC 媒体播放器检索和查看来自 XProtect 安装中的摄像机的实时视频馈送或记录视频。

VLC 媒体播放器是由 VideoLan 提供的免费开源多媒体播放器,支持多种流媒体协议,其中包括 RTSP。例如,当您要以非常快速的方式连接到摄像机时,或是仅仅要测试摄像机连接时,使用 VLC 媒体播放器就很有用。

当连接到摄像机以查看记录的视频时,Milestone Open Network Bridge 会从第一个序列开始流式传输视频序列。

在开始之前,请从管理 XProtect 安装的人员处获取以下信息︰

分配给 Milestone Open Network Bridge 的用户帐户的登录凭据 安装有 Milestone Open Network Bridge 的计算机的 IP 地址或计算机名称

另外,根据您使用的架构,您需要以下信息:

如果您使用 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]

然后您需要流 ID。这是用于在 XProtect 视频管理软件中识别流的 GUID。

当前识别流的 XProtect 视频管理软件多流实施 GUID 固定为:

28dc44c3-079e-4c94-8ec9-60363451eb40 - 用于流 0

28dc44c3-079e-4c94-8ec9-60363451eb41 - 用于流 1

...

28dc44c3-079e-4c94-8ec9-60363451eb4f - 用于流 15

此描述信息基于适用于 Windows 的 VLC 2.2.4。

要安装 VLC 媒体播放器,请将其连接到 XProtect;执行以下步骤︰

转至 https://www.videolan.org/vlc/,然后下载 VLC 媒体播放器的安装程序。 运行安装程序,并按照说明执行每一个步骤。 在工具栏上,单击 Media(媒体),并选择 Open Network Stream(打开网络流)。 在 Open media(打开媒体)对话框中,输入以下 RTSP 字符串。将方括号 [Milestone Open Network BridgeIP 地址]和[摄像机 GUID]中的变量替换为正确信息: 要查看实时视频流,请输入 rtsp://[Milestone Open Network Bridge IP Address]:554/live/[Camera GUID]要查看记录视频,请输入 rtsp://[Milestone Open Network Bridge IP Address]:554/vod/[Camera GUID] 单击 Play(播放),然后输入已添加到 Milestone Open Network Bridge 的用户帐户的用户名和密码。 管理视频播放

播放控件符合 RTSP 标准和 ONVIF 流式传输规范 (https://www.onvif.org/profiles/specifications/)。

记录摘要

您可以使用GetRecordingSummary 命令获得设备上所有可用视频的概览。这不是必需的,但在进行搜索之前它可提供有用的信息。

您可以使用 GetRecordingSummary 和/或 GetMediaAttributes 来获取第一个和最后一个记录的时间戳,但是您必须先从 Milestone Open Network Bridge 中 XProtect Management Client 插件上启用使用来自摄像机的配置设置。

使用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 方法启动。可以指定范围。如果未指定范围,则从头开始播放到结尾,或者,如果流暂停,则在暂停点恢复。在这个例子中,“范围:npt = 3-20”指示 RTSP 服务器从第 3 秒开始播放到第 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 设备可以支持反向播放。使用带有负值的比例标题字段指示反向播放。例如,要反向播放,而且没有数据丢失,将使用值 -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 = yes”,则服务器控制播放速度。数据流使用标准的 RTP 时序机制实时传输。如果“Rate-Control = no”,则客户端控制播放速度。速率控制重播通常只会被非 ONVIF 特定客户端使用,因为它们不会指定“速率控制=否”。

要控制客户端的播放速度,请使用提供的控制器。例如,使用 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 媒体播放器的播放控件:

代码

我可以通过该代码实现什么?

输入-重复=

输入重复

相同输入的重复次数

开始-时间=

启动时间

流将在这个位置开始(以秒为单位)

停止-时间=

停止时间

流会停在这个位置(以秒为单位)

运行-时间=

运行时间

流将运行此时长(以秒为单位)

输入-快速-寻找

无-输入-快速-寻找

快速寻找(默认禁用)

在寻找的同时,优选速度而不是精度

速率=

播放速度

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

输入-列表=

输入列表

您可以列出用逗号分隔的输入列表,它们将在普通列表之后串联在一起

输入-从属=

输入从属(实验)

这可以让您同时播放多个输入。这个功能是实验性的,并不是所有格式都支持。使用“#”分隔输入列表



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3