onvif规范概要

来源:互联网 发布:阿里云实名认证多久好 编辑:程序博客网 时间:2024/04/30 03:45
一、ONVIF规范
Onvif规范描述了网络视频的模型、接口、数据类型以及数据交互的模式,并复用了一些现有的标准,如WS系列标准等。
规范的目标是实现一个网络视频框架协议,使不同厂商所生产的网络视频产品(包括摄录前端、录像设备等)完全互通。
规范中设备管理和控制部分所定义的接口均以Web Services的形式提供。Onvif规范涵盖了完全的XML及WSDL的定义。每一个支持Onvif规范的终端设备均须提供与功能相应的Web Service。
服务端与客户端的数据交互采用SOAP协议,Onvif中的其他部分比如音视频流则通过RTP/RTSP进行。
该框架涵盖不同网络视频环境下的各个阶段,从网络视频设备部署和配置阶段到实时流处理阶段。
这个规范涵盖了设备发现、设备配置、事件、PTZ控制、视频分析和实时流媒体直播功能,以及搜索,回放和录像录音管理功能。


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

Web Service能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。


2、WSDL
WSDL是Web Service Description Language(Web Services描述语言)的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言,为用户提供详细的接口说明。
3、soap
SOAP是Simple Object Access Protocol(简单对象访问协议)的缩写,是基于XML的一种协议,被设计成在 WEB 上交换结构化的和固化的信息。
目前的应用程序通过使用远程过程调用(RPC)在诸如 DCOM 与 CORBA 等对象之间进行通信,但是 HTTP 不是为此设计的。RPC 会产生兼容性以及安全问题;防火墙和代理服务器通常会阻止此类流量。
通过 HTTP 在应用程序间通信是更好的方法,因为 HTTP 得到了所有的因特网浏览器及服务器的支持。SOAP 就是被创造出来完成这个任务的。
SOAP 提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。
一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:
必需的 Envelope 元素:可把此 XML 文档标识为一条 SOAP 消息
可选的 Header 元素:包含头部信息
必需的 Body 元素:包含所有的调用和响应信息
可选的 Fault 元素:提供有关在处理此消息所发生错误的信息
在向Web Service发送的SOAP请求中,Body元素中的字段需与WSDL中数据类型相符合。在构建SOAP的过程中,必须从WSDL文件中获取并映射这一种对应关系。然而这样一个对应过程将是充满了重复性和机械性的,为了避免不必要的人工差错以及节约开发时间,一个名为gSOAP的编译工具应运而生。
4、gsoap工具
gSOAP利用编译器技术提供了一组透明化的SOAP API,并将与开发无关的SOAP实现细节相关的内容对用户隐藏起来,通过将WSDL文件解析序列化为C/C++文件,最小化了Web Service的开发过程。
几个概念的关系:
Onvif开发的目的是为了实现一个网络视频框架协议,使不同厂商所生产的网络视频产品完全互通,而不同厂商可能会使用不同的平台、语言、内部协议来实现自己的网络视频产品,如何实现彼此间的互通及避免重复开发呢?
Web Service就是一种忽略平台、语言的技术。它使用 SOAP 和 HTTP通过 Web 调用的方法来调用远程对象。这样,只要实现了Web Service,并且将功能集暴露出来,对端就可以通过远程调用对象的方式达成互通的目的,就像调用本地函数一样。
即使是调用本地函数,仍然需要知道函数名是什么,参数有哪些,参数类型是怎么样的。WSDL就描述了这些内容。相同的WSDL就能够保证了数据描述的一致性。
光是数据描述一致还不能实现远程调用,需要SOAP来提供通道。
没有gSOAP工具也可以实现Onvif开发的目标,但是需要写代码来解析WSDL文件,需要考虑的问题很多,重复性和机械性工作也很多。与其将时间跟精力花在解析WSDL文件上面,不如使用gSOAP工具来生成框架代码,将时间跟精力聚焦在业务上的实现。


二、ONVIF规范的内容
onvif规范的主要的内容有:设备发现、设备管理、设备输入输出服务、图像配置、媒体配置、实时流媒体、接收端配置、显示服务、事件处理、PTZ控制等服务。每种服务都有标准的wsdl接口,


1、IP配置
      规定ONVIF网络视频服务的IP配置要求和建议。
设备的网络配置可以通过一个IP网络接口或本地接口(诸如USB接口,串行接口,蓝牙接口,或者NFC)。通过一个本地的接口的IP配置是在本规范以外。


2、设备发现
      描述在当地或远程的网络中,设备怎样被发现,
ONVIF设备发现是基于WS-Discovery的,其定义了2种模式:
Ad Hoc模式:客户端会发送探测消息到多播组,目标服务如果Probe匹配消息里的内容,就直接发送一个单播的ProbeMatch给客户端。
Managed模式:如果Endpoint的数量扩大了,且超出了ad hoc网络的范围之外,而且在网络中可以使用Discovery Proxy(DP,发现代理),则应该采用Managed操作模式,以禁止多播的行为。
在不使用服务代理的情况下(Ad Hoc模式) ,WS-Discovery定义了三种机制消息:
1、Web服务提供者上线主动发送Hello消息给客户端
2、Web服务提供者下线发送Bye消息给客户端
3、客户端主动发送Probe消息,Web服务提供者收到后会回复ProbeMacth消息到客户端,客户端读取并处理这些消息。


3、设备管理
      定义网络视频发射器管理命令。设备服务可以分为五种不同类型的命令集:功能,网络,系统,输入输出(I/O)以及安全。这组命令可以用来获取设备的功能和配置信息,或者配置设备。设备应支持在[ONVIF DM WSDL]中规定的设备管理服务。
1)功能:
              1>获取WSDL的URL
              2>交换的功能
2)网络:
              1>获取/设置主机名
              2>获取 /设置DNS配置
              3>获取/设置NTP配置信息
              4>获取/设置动态的DNS配置
              5>获取/设置网络接口配置
              6> 获取/设置网络协议
              7>获取/设置默认的网关
              8>获取/设置0配置
              9>获取/设置/增加/移除IP地址过滤
              10> IEEE 802.11配置
              11>多种无线网络配置
3)系统:
               1>设备信息
               2>获取系统的URL
               3>备份
               4>恢复
               5>开始恢复系统
               6>获取系统日期以及时间
               7>设置系统日期以及时间
               8>出厂默认配置
               9>固件升级
               10>开始固件升级
               11>获取系统日志
               12>获取支持信息
               13>重启
               14>获取/设置/添加/移除范围参数
               15>获取/设置发现模式
               16>获取/设置远程发现方式
               17>获取/配置远程DP地址
4)安全:
               1>获取/设置访问策略
               2>获取/创建/删除/配置用户
               3> 获取/创建/删除IEEE 802.1X配置
               4>创建签名证书
               5>获取CA证书
               6>获取/设置证书状态
               7> 获取证书请求
               8>获取/设置客户证书状态
               9>下载设备证书
               10>利用私有密钥来链接下载设备证书
               11> 获取证书信息请求
               12>获取/设置远程用户
               13>获取终端参数
5)输入与输出:
               1>获取继电器 输出
               2>对继电器输出进行配置
               3> 继电器触发输出
               4> 辅助操作
4、设备IO服务
      这个服务提供的命令集可以用来检索和配置设备的输入和输出端口。
请求设备返回有效的音视频输入输出端口和返回有效的继电器的命令定义是一样的,这个服务还提供获取和修改音视频输入输出端口配置信息的功能。


5、图形和媒体服务
图像服务提供对设备的图像性能进行控制和配置的操作。有一个或多个视频源的设备支持 [ONVIF的影像WSDL ]中定义的图像服务。图像设置是视频源实体的一部分。也就是说,图像参数直接影响一定的视频源。
媒体服务用于配置NVT的流媒体属性。NVT支持[ ONVIF Media WSDL ]指定的媒体服务。
媒体服务允许客户端配置媒体和其他实时流配置。媒体配置通过媒体文件处理。 ONVIF的媒体配置模型请参阅ONVIF协议文档。
媒体服务指令分为两大类:
 · 媒体配置:
O  Media profile commands(媒体文件命令)
O  Video source commands(视频源命令)
O  Vide encoder commands(视频编码器命令)
O  Audio source commands(音频源命令)
O  Audio encoder commands(音频编码器命令)
O  Video analytics commands(视频分析命令)
O  Metadata commands(元数据命令)
O  Audio output commands(音频输出命令)
O  Audio decoder commands(音频解码器命令)
· 流媒体: 
O  Request stream URI (请求URI流)
O  Get snapshot URI (获取URI快照)
O  Multicast control commands (组播控制命令)
O  Media synchronization point(媒体同步)


6、实时流
      对实时视频流,实时音频流以及元数据流进行讲解。流媒体支持的协议:通过UDP的RTP数据传输、通过TCP传输RTP数据、RTP/RTSP/TCP、RTP/RTSP/HTTP/TCP。
流媒体传输的数据格式,媒体同步、控制协议、链接通道等。


7、接受端配置
这项服务提供了一些管理接收对象的命令(用于从其他设备接收媒体流的命令)。接收器包含如何建立媒体流,接收器的工作模式,以及媒体流URI(通用资源标志符)这些信息。一个设备应支持至少128字节长度的媒体资源标识符。一个接收设备最大的RTSP资源标识符的长度的能力显示了设备支持的最大长度。接收服务应该可以由接收媒体流的设备来完成。
通过实时RTP协议,一个设备应该可以支持RTP传输,并且通过RTSP/HTTP/TCP传输协议,也可以实现RTP传输。一个设备可以支持其他的RTP传输协议,同时它还应该用适当的能力表明支持什么。


8、显示服务
显示设备有一个固定数量的视频输出,每一个都可以连接到监控器,通过使用设备输入输出服务,客户端可以请求设备的视频输出。每一个这些输出都配置了布局(比如单个视图和多画面).布局定义了一定数量的视频窗格,每个视频窗格都占据着一个物理显示区域。
一个网络的视频显示同时可能有一定数量的音频输入和音频输出,每一个这些输出可能都与一个窗格联系起来的。将一个音频输入或音频输出和窗格地图对应联系起来,可以让来自传输设备的音频和视频流自动的正确的输出。窗格还包含了一个对应接收器的标记(链接已经存储了的,从显示设备到发射机的一些必要的信息)
显示服务提供配置窗格功能而且可以自动描述和改变这个设备的布局。可能要求到一些布局和视频输出的编码能力


9、事件处理:定义怎样同意和接收数据从网络视频事件(通知)
个事件是一个行为或事件检测(一个客户可以订阅的设备进行的事件检测)。事件处理是通过事件服务来实现的。一个设备应该提供一个事件服务,就像[ONVIF Event WSDL]里描述的那样。NVT和NVC都应该支持[WS-Addressing]为事件服务。
在这个标准中处理事件是基于[WS-BaseNotification] and [WS-Topics]规范的。本规范要实现基本通知接口实施(implementation),此外,还应该实现实现实时的通知Pull-Point接口和通知流接口。
本标准介绍了一个通知消息扩展,从而允许客户端通过事件的性质跟踪对象。
本规范规定了事件描述的有效性和在订阅范围之内的过滤,描述了如何通过客户使用三个通知接口之一请求同步点、一体化的主题、处理错误。


10、PTZ控制
PTZ控制提供云台全方位(上下、左右)移动及镜头变倍、变焦控制。一个带有云台全方位移动及镜头变倍变焦能力的设备应该支持PTZ控制。类似的,一个具备变焦控制或全方位移动的设备也应该支持PTZ控制。[ONVIF PTZ WSDL]中详细定义PTZ控制。对应的命令操作说明请参考命令描述。
PTZ控制覆盖了广泛的摄像设备。PTZ设备可看作一个圆顶模型,可以改变摄像机的视角而不依赖于变焦控制
PTZ的运动控制运用了坐标系模型,一个设备列出了一套他支持的坐标系统。规范提供了一套通用的可应用到任何PTZ设备的坐标空间,使进一步定义坐标系统成为了可能,使之更适用于圆顶设备。


11、视频分析
       定义了ONVIF分析模式,分析对象描述和解析规则配置。
       介绍了ONVIF视频分析结构:分析模块接口、场景描述、规则接口、时间接口。
一个支持分析的设备应该具备场景描述和事件接口,和媒体服务进行分析配置一样。假如设备还支持规则引擎,那么还应该在这个标准中定义分析引擎,然后它就能够实现规则分析模块接口。
通过媒体服务,一个完整的视频分析配置能够附属在文件上,一个视频分析配置可以指定到一个视频源。由分析或规则引擎或当一个客户端请求类似的场景描述流时产生的事件,被客户端直接或间接地赞成时,设备应该确保相应的分析引擎开始工作。


12、视频解析设备
分析设备服务必须用于独立的分析设备,这些独立的分析设备能够对流媒体或者增强媒体流的元数据执行评估。同时分析设备服务同样适用于其他实体。分析设备可以一次对多个的流媒体或者增强流媒体元数据进行评估。
分析设备服务接收的流媒体或者增强流媒体的元数据,这些数据要么来自直接产生要么来自存储设备。如果分析的是一个没有压缩的数据,那么分析设备应该具备解码的能力。加强的流媒体元数据能够描述任何包含媒体数据的流媒体以及指定的元数据。
客户端使用分析设备服务来配置独立分析设备属性和功能或者配置其他一些带分析功能的实体的属性和功能。
独立的分析设备不提供反向通道功能。
分析设备服务依赖于对其它设备上的接收数据服务,这接收服务通过ReceiverTokens来识别接收对象来完成接收数据。在接受RTSP流时,必须提供一种机制来分配不同的路径给相应 AnalyticsEngine。


13、记录控制
录像服务,使客户端能够管理录像并设置从数据源到录像带的数据的转移。
录制管理,包括创建和删除录制,以及锁定、解锁录制和删除录制数据。
        录制工作从录像源传输数据到录像带。录像的来源可以是接收器服务创建的接收对象,或者是一个本地设备上的编码数据的媒体文件。媒体文件可以用来作为嵌入式存储摄像头的源。
         在本规范中使用录制来存储一组音频、视频和元数据的轨道集。录像带可容纳任意数量的轨道集。轨道被看做是在特定的时间记录数据的无限的时间线。
录制至少应当是有三个轨道,分别给音频、视频和元数据。录像服务的某些实现方式可能支持各种类型,多种轨道集。


14、检索和重播控制
搜索服务提供大量的操作,用于查找记录器内感兴趣的数据。搜索最常用的方式是搜索事件,事件就是包含元数据轨道的记录或在设备中的其他相关记录
读取记录摘要(GetRecordingSummary)返回一个包含所有记录的摘要,用于提供一个时间轴的浏览。
读取记录信息(GetRecordingInformation)返回一条记录的信息,如开始时间和当前状态。
      读取媒体属性(GetMediaAttributes)返回在指定时间的一个记录的媒体属性。
实际的搜索是由查找和结果操作组成的,每一个找操作启动一个搜索对话,客户端就可以从查找对话中用增量的方式获取结果,或者同时,依赖实现和范围搜索。有四对查找操作分别对应记录,记录事件,PTZ位置和元数据.
读取搜索状态(GetSearchState)返回一个搜索对话的状态。
结束搜索(EndSearch)结束一个搜索对话,停止搜索,返回和阻塞结果操作。


其中主要是onvf协议内容,也借鉴不少其他网络文章,表示感谢)


0 0
原创粉丝点击