onvif学习笔记2:了解onvif

来源:互联网 发布:js监听函数 编辑:程序博客网 时间:2024/05/17 03:48

自2年前接触onvif一小段时间后,就没碰过,还以为幸运地逃脱了。2年后的今天,公司又重新重视这一块内容,安排我们几个搞。真应了那句话:该是你的,你逃不掉。本文简单记录一下对onvif的认识。

一、何为ONVIF

ONVIF,英文全称为“Open Network Video Interface Forum”,直译为“开放型网络视频接口论坛”。通过制定标准接口,在安防市场形成一种规范。ONVIF实行会员制,国内外很多公司都加盟了。官网为http://www.onvif.org/,上面有各种规范。2008年11月,正式发布ONVIF核心规范1.0。到2015已经发布了2.6版本,几乎一年一个版本。

1、Core-Specification
核心规范。
2、Profile
onvif有很多种profile。每种profile文档都规定了device实现的功能以及client要实现的功能,以保证两者的一致性,而不用关注核心规范的版本。
Profile S相对要求比较少,至少实现核心规范2.1版本及以上。Profile C要求较多。

二、ONVIF规范实现

ONVIF规范描述了网络视频的模型、接口、数据类型以及数据交互的模式。并复用了一些现有的标准,如WS系列标准等。ONVIF规范的目标是实现一个网络视频框架协议,使不同厂商所生产的网络视频产品(包括摄录前端、录像设备等)完全互通。ONVIF规范中设备管理和控制部分所定义的接口均以Web Services的形式提供。ONVIF规范涵盖了完全的XML及WSDL的定义。每一个支持ONVIF规范的终端设备均须提供与功能相应的Web Service。服务端与客户端的数据交互采用SOAP协议。ONVIF中的其他部分比如音视频流则通过RTP/RTSP进行。

下图为核心规范中的Web Service开发准则:


实践中,开发者根据Onvif官网提供SWDL文档,使用gsoap工具书生成onvif.h头文件,然后再根据头文件根据onvif的框架代码——可以生成客户端代码,也可以生成服务端代码,之后进行业务程序的开发。这是ONVIF开发的一般流程。gsoap生成的代码主要使用soap协议与ONVIF(客户端/服务器)对接,开发人员更多关注的是自己的业务程序。

三、ONVIF内容

ONVIF规范向视频监控引入了Web Service的概念。设备的实际功能均被抽象为了Web Service的服务,视频监控系统的控制单元以客户端的身份出现,通过Web请求的形式完成控制操作。包括如下内容:

设备发现
设备管理
设备输入输出服务
图像配置
媒体配置
实时流媒体
接收端配置
显示服务
事件处理
PTZ控制
其他

四、ONVIF开发的一些备忘

1、开发过程

一般地,在编写ONVIF程序时,需要参阅ONVIF规范文档,对于一些命令字段的解释、返回的错误码,该文档有解释。另外需要参考官网的WSDL,从实践经验上看,这些WSDL会比规范文档解释得更为详细。

2、文档阅读

Normative:规范、标准
Mandatory:强制
阅读:出现Mandatory表示是强制的。
Profile Conditional Features表示可选的,不是强制的。
Device Mandatory Features (normative):强制
Profile Mandatory Features (normative) :基本的 

3、工具相关

DTT:ONVIF Device Test Tool,此工具可以进行每一命令的调试,可以根据已有XML修改保存为客户定制版本。如Profile token名称。

ODM:ONVIF Device Management,可以使用图形界面进行视频图像的调节,此功能相比DTT会好一些。

(2016.2月底补充)

4、与IP地址有关的如GetNetworkInterfaces、SetNetworkInterfaces,子网掩码不是使用如“x.x.x.x”的形式,而是使用PrefixLength来表示。

5、onvif协议基于http,可以用wireshark抓包分析协议中的内容。使用ip和协议过滤,比如ip.addr == 192.18.88.168&&http。

五、资源

ONVIF规范文档所在地址:http://www.onvif.org/Documents/Specifications.aspx

ONVIF命令索引:http://www.onvif.org/onvif/ver20/util/operationIndex.html

ONVIF设备管理wsdl:http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl


李迟 2015.12.13 周日 傍晚

1 0
原创粉丝点击