边缘智能提供了官方的 ONVIF 驱动程序,允许您快捷添加支持 ONVIF 协议的网络摄像头(IPC)设备到边缘智能节点(一体机)。添加 IPC 设备到节点后,您可获取设备的视频流播放地址,查看设备的实时视频。本文介绍了官方 ONVIF 驱动的使用方法。
ONVIF(Open Network Video Interface Forum)是一个开放的全球论坛,致力于标准化和保护 IP 视频监控产品的通信方式,以简化视频数据的交换。 例如,使监控中心或类似组织能够在任何基于 IP 的监控系统中快速访问实时和录制的视频流。
边缘智能官方 ONVIF 驱动支持 ONVIF 标准的部分接口。您在边缘智能节点上部署官方 ONVIF 驱动后,即可通过该驱动连接节点网络可访问的 ONVIF IPC 设备,获取实时的视频数据并上传数据到云端进行查看。
您可以在边缘智能控制台的 设备管理 > 驱动模板 页面,查看官方 ONVIF 驱动。
官方 ONVIF 驱动定义了下表罗列的属性。
类型 | 配置名称 | 说明 |
---|---|---|
子协议配置 - 协议参数 | IP 地址 | IPC 设备的 IP 地址。 |
端口号 | 访问 IPC 设备所使用的端口。 | |
用户名 | 访问 IPC 设备所使用的用户名。 | |
密码 | 访问 IPC 设备所使用的密码。 | |
验证模式 | IPC 设备的访问验证方式。可选项:
| |
点表配置 | 服务 | 对应 ONVIF 配置文件(Profiles)中支持的服务(Service)。 |
读取方法 | 对应 ONVIF 配置文件(Profiles)中支持的 Get 类方法(Function)。 | |
设置方法 | 对应 ONVIF 配置文件(Profiles)中支持的 Set 类方法(Function)。 | |
采样周期 | 表示每隔多久采集一次数据。单位:毫秒。默认值:10000。 |
使用官方 ONVIF 驱动前,您需要准备支持 ONVIF 协议的网络摄像头(IPC)设备。
使用 ONVIF 驱动前,您需要准备一台边缘智能节点,并完成以下工作:
物模型是现场设备实体在边缘智能控制台的数字化表示。您通过物模型定义设备相关的数据对象。
登录边缘智能控制台。
在左侧导航栏顶部的 我的项目 区域,选择您的项目。
在左侧导航栏,选择 设备管理 > 设备模板。
创建一个设备模板。
本教程中使用 onvif-device 作为设备模板的名称。
定位到要使用的设备模板,单击模板的名称。
定义物模型。
在设备模板详情页,单击 物模型定义 页签。
单击 编辑。
在 编辑物模型 页面,单击 保存。
对于 视频流设备 模板,默认模块 中默认包含以下 3 个自定义功能。您无需修改。
说明
自定义功能 对应于 ONVIF 设备中的数据对象。您也可以根据需要,增加其他符合 ONVIF 协议要求的数据对象。更多信息,请参见 YAML 文件。
功能名称 | 功能类型 | 标识符 | 数据类型 | 数据定义 | 说明 |
---|---|---|---|---|---|
Snapshot | 服务 | Snapshot | N/A | 调用方式:同步 | 调用 Snapshot,可以获取 IPC 设备快照。 |
ContinuousMove | 属性 | ContinuousMove | struct | N/A | 用于控制设备云台。 |
LocalStreamUri | 属性 | LocalStreamUri | text | 数据长度:1024 | 表示本地视频流 URI。该 URI 用于视频流数据在节点内部流转。例如节点内部的应用需要处理视频数据。 |
在 发布新版本 对话框,设置 版本号 和 描述,然后单击 确定。
本教程中使用 1.0.0.0 作为物模型的版本号。
发布版本后,您将会得到如下图所示的物模型。
物模型定义完成后,需要为属性创建点表。
在 模板详情 页面,单击 点表 页签,然后单击 创建点表。
在 创建点表 页面,完成以下配置,并单击 确认。
类别 | 配置项 | 说明 |
---|---|---|
基本信息 | 名称 | 为点表设置一个名称。
|
驱动模板 | 选择 ONVIF 驱动。 | |
配置信息 | ContinuousMove |
|
LocalStreamUri |
|
创建成功后,您将得到一个如下图所示的点表。
您必须在节点上部署 ONVIF 驱动,然后才可以添加监控设备到节点。
您提交部署请求后,系统将在节点上部署驱动实例。部署过程涉及到数据传输。根据现场网络环境不同,部署所需时间不同。请确保您的节点在线,并耐心等待部署完成。
在 基本信息 标签页,单击 添加设备。
在 添加设备 面板,完成以下配置,然后单击 确定。
配置项 | 说明 |
---|---|
名称 | 为设备设置一个名称。
|
标识符 | 为设备设置一个标识符。
|
设备模板 | 选择您在步骤1:创建物模型创建的设备模板。
|
点表 | 选择您在步骤2:创建点表创建的点表。
|
子协议名称 | 选择 Onvif。 |
IP 地址 | 输入现场 IPC 设备的 IP 地址。 |
端口号 | 输入现场 IPC 设备的端口号。 |
用户名 | 输入访问 IPC 设备所使用的用户名。 |
密码 | 输入访问 IPC 设备所使用的密码。 |
验证模式 | 选择 用户名密码认证。 |
标签 | 为设备添加标签。如果需要创建新的标签,输入 key 和 value 后,单击 创建标签。 |
描述 | 为设备添加描述信息。 |
完成以上操作后,您可以在 设备实例 列表查看新添加的设备。此时,设备的 状态 为 添加中。当设备的状态变为 在线,表示设备已经添加成功。
在 添加设备 页面,您可以在 驱动信息 区域查看驱动相关信息,并参考下表说明完成 设备配置,然后单击 确定。
配置项 | 说明 |
---|---|
子协议类型 | 选择 Onvif。 |
设备模板 | 选择您在步骤1:创建物模型创建的设备模板。
|
点表 | 选择您在步骤2:创建点表创建的点表。
|
设备名称 | 为设备设置一个名称。
|
标识符 | 为设备设置一个标识符。
|
IP 地址 | 输入现场 IPC 设备的 IP 地址。 |
端口号 | 输入现场 IPC 设备的端口号。 |
用户名 | 输入访问 IPC 设备所使用的用户名。 |
密码 | 输入访问 IPC 设备所使用的密码。 |
验证模式 | 选择 用户名密码认证。 |
标签 | 为设备添加标签。如果需要创建新的标签,输入 key 和 value 后,单击 创建标签。 |
描述 | 为设备添加描述信息。 |
(可选)如果需要同时添加多个设备实例,在 添加设备 后的输入框中输入要添加的设备个数,然后单击 添加设备。系统会自动生成多个设备配置条目。
(可选)如果需要批量设置一些设备参数,先勾选右上角的 批量编辑所有配置项,然后修改某个参数值,系统会同步修改所有设备的对应参数值。
说明
勾选 批量编辑所有配置项 后,如果参数配置框置灰,表示该参数不支持批量设置。
完成以上操作后,您可以在设备列表查看新添加的设备。最初,设备的 状态 为 添加中。当设备的状态变为 在线 后,表示设备已经添加成功。
在 Onvif设备自发现 区域,完成以下配置。
配置项 | 说明 |
---|---|
IPv4 CIDR | (必填)输入一个 IPv4 CIDR,定义搜索 IPC 设备的网络范围。系统将查找该 IP 地址段内的所有 IPC 设备。 |
用户名 | 访问 IPC 设备所使用的用户名。 |
密码 | 访问 IPC 设备所使用的密码。 |
验证模式 | 选择 用户名密码认证。 |
单击 搜索设备。
等待几秒后,可以看到对应 IP 地址段内的所有 IPC 设备及相关信息,包括添加状态、IP 地址、端口号、MAC 地址、制造商、设备型号和序列号。
在设备列表中勾选需要添加的设备,然后单击 下一步。
说明
勾选 批量编辑所有配置项 后,如果参数配置框置灰,表示该参数不支持批量设置。
完成以上操作后,您可以在 设备实例 列表查看新添加的设备。此时,设备的 状态 为 添加中。当设备的状态变为 在线,表示设备已经添加成功。
完成以上操作后,您可以在边缘智能控制台查看 IPC 设备的实时视频。
ONVIF 驱动支持获取 IPC 设备快照。
下表罗列了官方 ONVIF 驱动支持的所有服务与方法。
功能类别 | 服务 | 读取方法 | 设置方法 | 数据类型 |
---|---|---|---|---|
自动发现 | Device | Object | ||
Device | Object | |||
Device | N/A | Object | ||
Device | N/A | Object | ||
网络配置 | Device | Object | ||
Device | Object | |||
Device | Object | |||
Device | Object | |||
Device | Object | |||
系统功能 | Device | N/A | Object | |
Device | Object | |||
Device | N/A | Object | ||
Device | N/A | Object | ||
用户处理 | Device | Object | ||
Device | N/A | Object | ||
Device | N/A | Object | ||
元数据配置 | Media | Object | ||
Media | N/A | Object | ||
Media | N/A | Object | ||
Media | N/A | Object | ||
Media | N/A | Object | ||
Media | N/A | Object | ||
视频流 | Media | N/A | Object | |
Media | N/A | Object | ||
视频编码器配置 | Media | Object | ||
Media | N/A | Object | ||
云台节点 | PTZ | N/A | Object | |
PTZ | N/A | Object | ||
云台配置 | PTZ | N/A | Object | |
PTZ | Object | |||
PTZ | N/A | Object | ||
Media | N/A | Object | ||
Media | N/A | Object | ||
云台驱动 | PTZ | N/A | Object | |
PTZ | N/A | Object | ||
PTZ | N/A | Object | ||
PTZ | N/A | Object | ||
PTZ | N/A | Object | ||
PTZ | N/A | Object | ||
PTZ | N/A | Object | ||
PTZ | N/A | Object | ||
云台起始位置 | PTZ | N/A | Object | |
PTZ | N/A | Object | ||
云台辅助操作 | PTZ | N/A | Object | |
事件处理 | Event | N/A | Object | |
Event | N/A | Object | ||
Event | N/A | Object | ||
Event | N/A | Object | ||
Event | N/A | Object | ||
Event | N/A | Object | ||
Event | N/A | Object | ||
Event | N/A | Object | ||
分析文件配置 | Media2 | N/A | Object | |
Media2 | N/A | Object | ||
Media2 | N/A | Object | ||
Media2 | N/A | Object | ||
分析模块配置 | Analytics | N/A | Object | |
Analytics | Object | |||
Analytics | N/A | Object | ||
Analytics | N/A | Object | ||
Analytics | N/A | Object | ||
规则配置 | Analytics | N/A | Object | |
Analytics | Object | |||
Analytics | N/A | Object | ||
Analytics | N/A | Object | ||
Analytics | N/A | Object | ||
图片操作 | Imaging | N/A | Object | |
系统功能 | EdgeX | N/A | Bool | |
EdgeX | N/A | Bool | ||
EdgeX | N/A | Bool | ||
EdgeX | N/A | Bool | ||
媒体 | EdgeX | N/A | Binary | |
自定义元数据 | EdgeX | Object | ||
自定义元数据 | EdgeX | N/A | Object |
以下 YAML 文件罗列了官方 ONVIF 驱动支持的所有数据,其中 deviceResouces
对象均可定义为自定义功能。