ONVIF简介

一、什么是ONVIF ?

ONVIF规范描述了网络视频的模型、接口、数据类型以及数据交互的模式。并复用了一些现有的标准,如WS系列标准等。ONVIF规范的目标是实现一个网络视频框架协议,使不同厂商所生产的网络视频产品(包括摄录前端、录像设备等)完全互通。

ONVIF规范中设备管理和控制部分所定义的接口均以Web Services的形式提供。ONVIF规范涵盖了完全的XML及WSDL的定义。每一个支持ONVIF规范的终端设备均须提供与功能相应的Web Service。服务端与客户端的数据交互采用SOAP协议。ONVIF中的其他部分比如音视频流则通过RTP/RTSP进行 。

ONVIF简介_第1张图片

由于Web Services采用WSDL+XML模式,WSDL是服务端用来向客户端描述自己实现哪些请求、发送请求时需要带上哪些参数xml组织格式 SOAP是客户端向服务端发送请求时的参数的xml组织格式,使ONVIF规范的后续扩展不会遇到太多的麻烦。XML极强的扩展性与SOAP协议开发的便捷性将吸引到更多的人来关注和使用ONVIF规范。

ONVIF简介_第2张图片


拿IPC摄像头来说,IPC是Web Services服务端,其提供的WEB服务接口需符合ONVIF协议规范(这些接口在ONVIF规定的WSDL文档中),我们开发的客户端通过这些ONVIF规范接口跟IPC通讯,比如:

1.获取IPC的基本信息(厂家信息、版本信息等)

2.修改IPC的系统日期、时间

3.修改IPC的网络配置(IP、子网掩码等)

4.获取/修改IPC摄像头的各种参数(视频分辨率、码率、帧率、OSD,云台控制等)

由于SOAP协议不适合传输音视频流,ONVIF规范中的传输音视频流采用的是已经很成熟的RTP/RTSP多媒体传输协议。简单粗暴的理解:IPC的各种参数获取/配置都是通过ONVIF协议实现,而音视频流多媒体传输采用的是RTP/RTSP协议实现。在安防、监控系统急速发展的今天,效率和质量的领先所带来的价值不言而喻。ONVIF协议提供了这样的潜质。

二、ONVIF规范的实现机制

1、web service

Web Service是基于网络的、分布式的模块化组件,执行特定的任务。Web Service 主要利用 HTTP 和 SOAP 协议使数据在 Web 上传输。Web 用户能够使用 SOAP 和 HTTP通过 Web 调用的方法来调用远程对象。 

ONVIF简介_第3张图片

 2、wsdl文件

客户端根据 WSDL 描述文档,会生成一个 SOAP 请求消息,该请求会被嵌入在一个HTTP POST请求中,发送到 Web Services 所在的Web 服务器。Web Services 请求处理器解析收到的 SOAP 请求,调用相应的 Web Services。然后再生成相应的 SOAP 应答。Web 服务器得到 SOAP 应答后,会再通过 HTTP应答的方式把信息送回到客户端。

ONVIF简介_第4张图片

WSDL是Web services 描述语言(Web Service Description Language)的缩写。是一个用来描述Web服务和说明如何与Web服务通信的XML语言,为用户提供详细的接口说明书。

3、soap协议

SOAP是Simple Object Access Protocol的缩写。是基于XML的一种协议。一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:


必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
可选的 Header 元素,包含头部信息
必需的 Body 元素,包含所有的调用和响应信息
可选的 Fault 元素,提供有关在处理此消息所发生错误的信息


在向Web Service发送的SOAP请求中,Body元素中的字段需与WSDL中数据类型的相符合。在构建SOAP的过程中,必须从WSDL文件中获取并映射这一种对应关系。然而这样一个对应过程将是充满了重复性和机械性的,为了避免不必要的人工差错以及节约开发时间,一个名为gSOAP的编译工具应运而生。
gSOAP利用编译器技术提供了一组透明化的SOAP API,并将与开发无关的SOAP实现细节相关的内容对用户隐藏起来。通过将WSDL文件解析序列化为C/C++文件,最小化了Web Service的开发过程。

4、Web Service 开发流程

ONVIF简介_第5张图片

5、Web Service与视频监控

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

ONVIF简介_第6张图片

6、Web Service能给视频监控系统带来什么?

设备的无关性,任何一个设备接入系统,不会对其他系统造成影响。
设备的独立性,每一个设备只负责对接收到的请求做出反馈,甚至不需要知晓控制端的存在。
管理的集中性,所有的控制由客户端来发起。

抽象了功能的接口。统一了对设备的配置以及操作的方式。 控制端关心的不是设备的型号,而是设备所提供的Web Service 规范了视频系统中Web Service范围之外的行为。除此之外ONVIF提供了各个模块的WSDL,拥有效率非常高的开发方式。

ONVIF简介_第7张图片

三、ONVIF规范的内容

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

四、基于ONVIF规范的项目的开发

1.、获取onvif官网上的onvif模块的wsdl文件

DeviceMgmt(设备管理)
https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl
DeviceIO(设备IO服务)
http://www.onvif.org/onvif/ver10/deviceio.wsdl
Event(事件处理)
http://www.onvif.org/onvif/ver10/event/wsdl/event.wsdl
Analytics(视频分析)
http://www.onvif.org/onvif/ver20/analytics/wsdl/analytics.wsdl
AnalyticsDevice(分析设备)
http://www.onvif.org/onvif/ver10/analyticsdevice.wsdl
Display(显示服务)
http://www.onvif.org/onvif/ver10/display.wsdl
Imaging(图像配置)
http://www.onvif.org/onvif/ver20/imaging/wsdl/imaging.wsdl
Media(媒体配置)
https://www.onvif.org/ver10/media/wsdl/media.wsdl
PTZ(PTZ控制)
http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl
Receiver(接收端配置)
http://www.onvif.org/onvif/ver10/receiver.wsdl
RemoteDiscovery(设备发现)
https://www.onvif.org/ver10/networ/wsdl/remotediscovery.wsdl
Recording(录像控制)
http://www.onvif.org/onvif/ver10/recording.wsdl
Replay(重放控制)
http://www.onvif.org/onvif/ver10/replay.wsdl
Search(记录搜索)
http://www.onvif.org/onvif/ver10/search.wsdl
对应各模块文档:
https://www.onvif.org/onvif/ver20/util/operationIndex.html

2.、通过gSOAP编译为c/c++文件。

下载gsoap:   https://sourceforge.net/projects/gsoap2​​​​​​

安装OpenSSL(ubantu上编译需要指明连接库的路径):/index.html

3.、业务逻辑开发,音视频流可以采用ffmpeg开发

4.、编写main函数调用接口,修改参数等,发布onvif版本

你可能感兴趣的:(onvif网络视屏协议,onvif)