当前位置:首页 > 代码 > 正文

onvif源代码(onvif基于什么协议)

admin 发布:2022-12-19 20:01 176


今天给各位分享onvif源代码的知识,其中也会对onvif基于什么协议进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Onvif协议接入分析学习总结(鉴权认证)

Onvif支持两种鉴权方式,一种是WS-Security UsernameToken(常用,需要理解并实现),另外是Digest(RTSP取流也会用到的鉴权方式,如果只是做客户端的方向的话,可以尝试了解)。

绝大部分的数据请求都是需要用户权限的,所以鉴权是非常重要的基础部分内容。

一般基础的鉴权信息都是用户名加密码,Onvif是支持明文直接传输,但是不太建议使用,且目前市面上的IPC也不太支持明文传输。

上面是一个简单的例子,可以看在Header里面UsernameToken节点。里面含有4个关键的信息

1、Username:用户名信息。

2、Password:加密后的密码数据,用来给服务端校验。

3、Nonce:一个随机的数据,base64编码。

4、Created:日前信息,用来加密Password数据。

公式如下:

如上面的例子中:Username为root,假设真实密码为123456,代入上面的公式就是

关于Nonce的生成规则只要保证随机性即可,最好能保证每次的Nonce为唯一,可以以当前的毫秒数+随机数为Nonce的源数据进行base64编码。因为有的厂家会对Nonce进行次数的有效性验证,即相同的Nonce的验证次数有限,在多并发的场景下,很容易会忽略导致验证失败。

暂时不介绍,资料可以参考百度其他协议。

.nsmap是什么文件

以下为生成的onvif源码,onvif.h为临时文件,".nsmap"后缀文件为命名空间文件,"Proxy"后缀为client端源码,"Service"为server源码,"soapC"为公用文件

Onvif协议接入分析学习总结(设备取流)

首先,你需要清楚知道前端IPC的ip地址、Onvif协议监听的端口(一般都是80)以及用户名密码(一般为登录IPC的用户名密码,海康设备IPC需要登录IPC的web端在配置添加Onvif用户)。

其次你需要知道IPC请求的各个服务支持的协议地址如:(默认80端口,同:),一般需要知道Devicemgmt的地址就可以通过这个协议地址往下操作。

如果你不知道IPC的ip以及port等信息,那你就需要使用一些Onvif的测试工具如 ONVIF Device Test Tool和 ONVIF Device Manager 通过Onvif的Discovery协议(广播发现)获取IPC的ip和port信息。

拿到这些信息后就可以开始向设备请求信息获取取流的RTSP地址。

目前一些需要的信令的Onvif官网地址:

1、其他服务地址获取-------- GetServices (推荐)或者 GetCapabilities

该请求是获取各个服务的XAddr(如)以及能力集。

取流过程通过该信令请求获取Media(如)或者Media2(如)的服务地址。

2、设备的通道信息获取-------- Media-GetProfiles (或者 Media2-GetProfiles )

根据返回的信息记录保存ProfileToken。

里面重点的几个关键信息为VideoSourceConfiguration、VideoEncoderConfiguration。

VideoSourceConfiguration对应的是视频源配置,可以理解为一个摄像头,或者一个监控护画面,一个视频。

VideoEncoderConfiguration对应的是视频编码配置,可以理解为一个视频源对应不同的画面配置,一个视频对应的标清、高清或者超清等等(主码流、副码流、第三码流等)。

一个Profile下对应有一个VideoSourceConfiguration和一个唯一VideoEncoderConfiguration。

一个VideoSourceConfiguration可以对应多个VideoEncoderConfiguration。

3、设备的RTSP的流地址获取-------- Media-GetStreamUri (或者 Media2-GetStreamUri )

请求只需带上ProfileToken,设备会返回对应的Uri。

4、播放Uri

可以通过RTSP客户端播放实时流。

Qt编写Onvif搜索及云台控制工具

这个工具很早以前大概在2013年就想做了,后面杂七杂八的事情一再耽搁,记得当时最初用的是soap类来搜索和解析的,后面发现太大了,每次编译都要等好久,光源码文件加起来都快10MB了,而且函数名非常另类,大量的下划线等,反正本人非常不适应,近期经过一个朋友(QQ:408815041)的前期探索,对整个处理流程熟悉以后,发现其实用纯Qt也可以实现,核心就是udp搜索+post数据。

本程序框架的最大难点在找出对应的数据以及节点数据解析。找出对应的数据可以直接使用官方的ONVIF Device Test Tool,抓包即可。数据解析一开始采用xml的节点解析,发现根本行不通,因为返回的数据不是标准的xml数据,而是soap格式的数据,需要用QXmlQuery来解析。本程序只实现了设备信息的搜索和云台控制,并未实现服务端,服务端一般是IPC或者NVR上来实现。

体验地址: 提取码:zkeh,下面的bin_onviftool.zip,如果是XP系统,请先执行目录下的fixff.cmd。

ONVIF致力于通过全球性的开放接口标准来推进网络视频在安防市场的应用,这一接口标准将确保不同厂商生产的网络视频产品具有互通性。2008年11月,正式发布了ONVIF第一版规范——ONVIF核心规范1.0。随着视频监控的网络化应用,产业链的分工将越来越细。有些厂商专门做摄像头,有些厂商专门做DVS,有些厂商则可能专门做平台等,然后通过集成商进行集成,提供给最终客户。这种产业合作模式,已经迫切的需要行业提供越来越标准化的接口平台。

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

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

关于onvif源代码和onvif基于什么协议的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/21875.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载