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 周日 傍晚
- onvif学习笔记2:了解onvif
- Onvif学习笔记2
- onvif学习笔记5:onvif框架代码初步了解
- onvif协议学习笔记
- Onvif学习笔记1
- Onvif学习笔记3
- ONVIF学习理解(2)
- onvif笔记
- onvif 笔记
- onvif学习
- Onvif
- ONVIF
- Onvif
- onvif
- ONVIF
- onvif
- onvif学习笔记6:onvif的OSD坐标小记
- 简单了解ONVIF 协议
- Eclipse的快捷键
- MySQL 约束与索引
- 批量修改文件名和后缀名的python设计
- Synchroniazed和Lock实现生产者--消费者
- 10015---JavaScript--表单验证
- onvif学习笔记2:了解onvif
- Photo Editing Extension 详解 (附带应用滤镜Demo)
- 设计模式-工厂模式
- 简单的ajax让前端jquery与后台node.js交互
- Java 多线程(四)线程间的通信jdk1.5中Lock,Condition----各种锁的相关详细概念
- 英语需要你说出来-12月
- 数据结构实验2(二叉链表实现二叉树的基本运算)
- spring4.0 源码分析 bean标签的解析(三)
- distribute-list分发列表 和 不进行重分发LAS过滤方法area filter-list prefix、database-filter