一 背景
网络摄像机是网络设备,需要有通讯协议,早期的网络摄像机硬件提供商都采用私有协议。但是随着视频监控的网络化应用,产业链的分工将越来越细。厂商开始分工合作,有的做摄像头,有的做协议,有的做平台。这种规模化的合作关系,导致私有协议兼容困难。于是行业标准化接口应用而生,onvif 就是其中之一。
2008年5月,由安讯士(AXIS)联合博世(BOSCH)及索尼(SONY)公司三方宣布携手共同成立一个国际开放型网络视频产品标准网络接口开发论坛,取名为ONVIF(Open Network Video Interface Forum,开放型网络视频接口论坛),并以公开、开放的原则共同制定开放性行业标准。ONVIF标准将为网络视频设备之间的信息交换定义通用协议,包括装置搜寻、实时视频、音频、元数据和控制信息等。规范涉及设备发现、实时音视频、摄像头PTZ控制、录像控制、视频分析等方面
目前,网络摄像机的标准协议,国际标准上有三大类:ONVIF、PSIA和HDCCTV,国内标准有国标GB/T28181。ONVIF标准的厂商覆盖芯片、视频前端设备、存储设备、系统平台、智能分析设备、门禁、传感设备等各个安防相关领域。常见的IPC摄像头只是ONVIF标准里的一个分支而已,可见ONVIF的强大。
二 接口规范
ONVIF接口被划分为不同模块,包括:设备发现、设备管理、设备输入输出服务、图像配置、媒体配置、实时流媒体、接收端配置、显示服务、事件处理、PTZ控制等。ONVIF规范中设备管理和控制部分所定义的接口均以Web Services的形式提供。ONVIF规范涵盖了完全的XML及WSDL的定义。每一个支持ONVIF规范的终端设备均须提供与功能相应的Web Service。服务端与客户端的数据交互采用SOAP协议。ONVIF中的其他部分比如音视频流则通过RTP/RTSP进行。
什么是web services ?
onvif是建立在Web Services标准上的,定义在onvif标准里的所有配置服务都表示为Web Services操作,并在WSDL中定义,使用HTTP作为通信机制。
web service 示例
获取设备信息
官网 wsdl:https://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl
ONVIF协议既然是Web Services框架,那就不需要自己造轮子,ONVIF协议部分由gSOAP工具帮我们自动生成代码框架。
参考例子:https://www.genivia.com/examples/onvif/index.html
生产对应的 c++代码即可完成调用,获取设备基本信息
三 Profile技术
ONVIF profiles 可以轻松实现ONVIF规范的设备与客户端相互兼容。ONVIF profiles协议要求客户端和设备彼此必须支持一组功能,去确保支持Profile S的客户端与设备能确实彼此兼容。同时支持Profile S的客户端与设备中,一些特定的功能,也必须在双方同时被支持的前提下,才可以实现。ONVIF网络接口规范定义了ONVIF Profile协议文件的基本功能(包含特定功能)。
客户端和设备可以支持多个ONVIF profile协议; 例如,具有本地存储功能的网络摄像机可以同时符合Profile S和G协议。
符合profiles协议是确保符合ONVIF一致性的方法。因此,只有符合协议的认证产品才被视为符合ONVIF规范的产品。
Profiles A、C、D和M 适用于门禁控制,Profiles G、M、S与T 适用于视频系统。
为了确保物理IP安防产品的高效互操作性,ONVIF提供根据最新网络安全标准制定的规范。如有任何涉及监管的问题,最终解释权归ONVIF所有。 制造商、系统设计师及集成商有责任查看监管部门要求和其他地方性要求,确保安防产品和系统设计切实可靠,根据用例采用恰当的安防等级。 ONVIF配置文件标志使用权归ONVIF及其会员所有,用于声明ONVIF合规产品。
详见官网:https://www.onvif.org/ch/profiles/
尤其毕竟常见的onvif 摄像头,通常是基于Profile S,可以查看其相应的协议规范(https://www.onvif.org/wp-content/uploads/2018/08/ONVIF_Profile_-S_Specification_v1-2.pdf?441d4a&441d4a)
四 总结
onvif 作为一个网络视频协议标准,被大部分主流摄像头厂商支持。基于 web services 方式的调用,对于开发人员来说,相对简单,易于扩展。针对给出的 wsdl 文档,利用工具生成相应的客户端代码即可进行相关的业务开发集成。
五 参考文章