Onvif协议及协议测试工具使用详解

      最后更新:2022-07-22 08:32:14 手机定位技术交流文章

      目录

      1.Onvif议定书的发展

      2.Onvif协议的概况和优点

      2.1《协定》的摘要

      2.2、规范优势

      2.Onvif模块组成和说明

      2.4.协议结构和功能

      Onvif协议请求的基本过程

      4.如何使用Onvif测试工具

      4.1、Onvif device manager工具的使用方法

      4.2.使用VLC测试工具

      Onvif FAQ

      5.1.设备管理员异常分析和处理

      5.2.媒体异常的分析和处理

      5.3.事件异常分析和处理

      5.图像异常分析和处理

      5.6、使用user name token方式验证不通过

      5.Digest验证失败

      5.8XML中没有命名空间,或者填入错误等。

      5.SOCKET接收和发行过程中出现的问题

      ​1.Onvif议定书的发展

      通过视频监控的网络应用,产业链中的劳动分工将变得越来越微妙.有些制造商专门生产摄像机,一些制造商专门从事DVS,有些制造商可能专门从事平台等行业,然后通过整合器进行整合,提供给最终客户。这种产业合作模式,工业迫切需要提供日益标准化的接口平台。2008年5月,由安讯士联合博世及索尼公司三方宣布将携手共同成立一个国际开放型网络视频产品标准网络接口开发论坛,取名为ONVIF(Open Network Video Interface Forum,开放网络视频界面论坛),它还根据开放和开放的原则制定开放行业标准。

      2008年11月,该论坛正式发布了第一个版本的ONVIF标准,ONVIF核心标准1.0。

      2.Onvif协议的概况和优点

      2.1《协定》的摘要

      ONVIF标准将定义网络视频设备之间的信息交换的一般协议,包括设备搜索、实时视频、音频、元数据和控制信息。因此,网络视频产品可以提供多种可能性,使终端用户,集成商,顾问和制造商可以轻易地从中获益,并获得高成本效益,更灵活的解决方案,市场扩张的机会和较低的风险。

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

      在ONVIF标准的设备管理和控制部分中定义的接口以Web服务的形式提供。ONVIF规范涵盖XML和WSDL的完整定义。每个支持ONVIF规范的终端设备必须提供与功能相符的Web服务。服务端与客户端之间的数据交互使用SOAP协议.其他ONVIF的部分,如音频和视频流,通过RTP/RTSP进行。

      2.2、规范优势

      协同性:不同厂商所提供的产品,均可以通过一个统一的“语言”来进行交流。方便了系统的集成。
      灵活性:终端和集成用户不需要被某些设备的专有解决方案束缚,开发成本大大降低。
      质量保证:不断扩大的标准将面向市场,其次是标准,并满足主流用户的需求。

      2.Onvif模块组成和说明

      2.4.协议结构和功能

      Onvif是一个使用许多成熟的技术的协议家族,如图所示:

      该协议分为两个主要部分:控制和媒体。

      主要负责传输视频和音频代码流的媒体使用标准RTP/RTCP协议,为了适应不同的网络环境,RTP/RTCP下流可以使用UDP、TCP、RTSP等。

      控制面主要分为两部分:

      1)控制媒体对话,该部分采用标准RTSP协议;
      2)设备控制、媒体配置部分,这是Onvif协议中最复杂的部分,是Onvif协议的精髓所在。采用了web service,采用http+soap传输协议。

      基于web service协议带来了以下的优点:

      1)方便部署。http协议是最广泛使用的协议,其中有NAT和防火墙,使用已经成熟的http相关技术;
      2)模块化。网络服务是一个协议框架,它的特殊优势是该模块是快速的和可扩展的.基于网络服务的在线选择,其中许多可以用于明确的协议,不再需要单独定义新的协议。例如,在Onvif:用户登录使用WS-Security协议,设备搜索使用WS-Discovery协议,事件通知使用WS-BaseNotification协议。
      3)可扩展。Web servce广泛采用了XML的namespace技术,从设计开始,就将可扩展作为其核心的需求。
      4)方便开发。业界已经有很多的工具,只要提供wsdl描述文件,就可以利用工具,自动生成对应的客户端访问接口、服务端框架。下图是基于Web service开发的示意图:

      Onvif 协议 的 具体 特点 包括 :

      1)设备搜索;
      2)设备管理:
      a)能力集
      b)系统管理
      c)网络管理
      d)安全性
      e)输入、输出
      3)图像配置
      4)媒体配置
      5)媒体流管理
      6)事件管理
      7)PTZ控制
      8)视频分析

      Onvif协议请求的基本过程

      下面举一个简单例子,从一个Onvif IPC上电,到能看到视频图像的基本流程,来描述Onvif的基本流程:

      1)搜索设备,获取设备的IP地址;
      (二)获取设备能力集,通过该集可以学习设备支持功能和一些能力参数;
      (三)查询设备的所有规格,并找出我们感兴趣的规格;
      4)获取相应的rtsp URL;
      5)启动rtsp链接并请求相应的代码流;
      6)建立rtp链接并接受代码流。

      在上述步骤中,步骤1-4是通过使用Web服务完成的。 我们目前的进程,我们的VSIP协议,是前端主动登录监控系统,和Onvif协议,是监控系统主动登录IPC,有很大区别。

      4.如何使用Onvif测试工具

      4.1、Onvif device manager工具的使用方法

      ONVIF Device Manage工具主要用来验证设备是否支持onvif,实时预览、PTZ控制及远程配置IPC参数等功能。

      4.1.1、ONVIF Device Manage安装:

      1)PC安装环境要求:装有Microsoft .Net Framework 4.0版本
      有关安装源文件,请参见ONVIF Device Manage.Rare
      注: Microsoft.Net Framework 4.0 安装解决方案失败, 见注释.

      4.1.2、ONVIF Device Manage的使用:
      1)运行工具
      双击ONVIF Device Manage快捷方式,运行工具。当前局域网内,支持onvif协议的IPC可以自动显示出来,见下图。Device List列表即检索到的IPC列表

      2)基本功能介绍

      a.登录
      此时输入的用户名和密码为设备自身的用户名和密码,有的厂家设备不需要。输入正确的用户名和密码,即可实时预览IPC及参数配置。
      b.实时预览
      在设备列表选择一个IPC(单击即可),点击Live video即可预览该IPC画面,main stream是主码流预览,sub stream是子码流预览:

      c.检索
      在设备列表区域的文本框中输入IP地址,以筛选其他IPC,然后离开相应的设备。

      d.手动增加
      点击Add按钮,输入url,例如http://192.168.1.123/onvif/device_service,点击Apply,即可手动增加IPC:

      e.rtsp路径

      rtsp路径在实时预览屏幕下显示如下:
      rtsp://192.168.1.166:5504/channel=0;stream=0;user=system;pass=system
      192.168.1.166为IPC的地址
      5504用于IPC端口
      作为频道的频道
      流是编码流,0是默认的主编码流,1是子编码流
      用户和密码:用户名和密码

      f.视频编码配置

      选择子编码预览以配置子编码参数

      g.码流选择

      单击“Profiles”键入代码流交换接口:

      为创建代码流创建;为编辑代码流编辑;

      h.PTZ控制
      点击方向键:

      4.1.测试结果

      如果该设备可以通过上述工具进行搜索,请指出该设备支持ONVIF。

      如果说明书或厂家说是该设备支持ONVIF,但是搜索不到。可以通过IE或厂家自己的配置工具登陆该设备,看ONVIF支持是否开启,有些厂家的设备ONVIF支持是可选的。

      备注:
      1.Microsoft.Net Framework 4.0 安装失败的解决方案


      安装失败与Windows更新有关
      按以下步骤成功安装:
      1.按组合键 win+R,打开运行,输入cmd,重新启动,并输入net stop wuauserv,重新启动,即停止更新服务;
      2.打开C盘根目录下的“Windows”文件夹,找到SoftwareDistribution文件夹,将其重命名为SDold;
      3.按组合键 win+R,打开运行,输入cmd,重新启动,并输入netstart wuauserv,重新启动,即启动更新服务;
      4.现在安装。Net Framework 4.0 将成功。

      4.2.使用VLC测试工具

      1)打开VLC软件,点击第一个选项:

      2)更改为RTP,保存后关闭VLC播放器并重新打开:

      3)打开网络串流

      4)输入RTSP码流的地址,比如我们摄像机的RTSP码流地址为rtsp://10.75.7.123/id=0
      10.75.7.123这里是举例,具体IP地址为现场使用的实际IP地址。
      id=0是主视频编码流, id=1是辅助视频编码流。

      Onvif FAQ

      5.1.设备管理员异常分析和处理

      例:手动时间同步问题
      现象:更改时间区信息,无法同步IPC时间
      协议接口: GetSystemDateAndTime和 SetSystemDateAndTime

      一般处理流程:
      1.登录WEB IPC设置IPC的时间区为东8,使用测试工具GetSystemDateAndTime获取IPC的时间信息。

      2、报文解析:

      1)DateTimeType->Manual:手动设置时间同步(和NTP设置互斥,协议有规约);
      2)DaylightSavings->false:不支持夏日制,如支持hour+1;
      3)TZ->GTM+8:东八区,这是一个经常出现问题的地方,因为每个ipc制造商使用的时间区是不同的,通常设置的时间区会下降,IPC答复200 OK,但问题是时间不会生效。该部分需要通过测试工具的 SetSystemDateAndTime接口设置到IPC上,检查是否最终能看到时间效应在IPC上;如果设置相同的时间区信息,无法激活IPC时间,可以直接得出结论,这是一个IPC问题。
      4)UTCDateTime->UTC时间, UTC时间加上时区偏移,是最终在IPC上显示的时间。
      5)LocalDateTime->Local时间,暂时不用关注;

      注:在检查时间同步问题时,我们不能将相同的IPC连接到不同的NVR,因为不同的NVR可能会向IPC发送时间同步,并且我们无法保证,发送的时间和参数设置可以确保一致性,在这一点上,经常会有一个时间不变的跳前跳后,很难定位搜索。

      5.2.媒体异常的分析和处理

      例如: ONVIF输入分辨率列表显示的比VSIP输入分辨率列表少。
      现象:相同的IPC与vsip协议和onvif协议在同一NVR中出现,报告的分辨率不同(不建议在同一NVR中使用不同的协议,因为协议与频道不同,这支持检查作为参考)。
      协议接口:  GetProfiles -> GetVideoEncoderConfigurationOptions
      一般处理流程:

      获取信息:有两种代码流的渠道,并沿着这条路进行

      获取到的信息:
      视/音频源、视/音频编码、视频分析、ptz配置token;因为处理的是视频编码参数分辨率异常,需要取VideoEncoderConfiguration的token 000

      处理方法:使用OnvifTestTool接口,GetVideoEncoderConfigurationOptions

      得到报文:

      将上述报文中h264的编码格式分辨率和WEB IPC上对比下,如果WEB IPC有的,但是报
      文本中也没有通知,被认为是一个IPC问题,如果有一个通知,但在NVR上显示了一个例外,那就是NVR。

      5.3.事件异常分析和处理

      例如: Hik ipc无法接收通知
      现象:使用 pullmsg方法未能取得Haiconipc警告内容,前端本身生成警告信息
      协议接口: PullMessages

      处理方式:
      使用测试工具获取标准报告:

      我们的录像机以下列格式发送消息:

      这里没有 pullmsg的Onvif协议标准的邮件对象部分有一个详细的报告格式描述,post消息时需要携带subscribe的endpoint部分信息。此时,我们使用OnvifTestTool的诊断功能(见下文,OnvifTestTool的标准报告提到了操作方法),获取详细的参考报告。使用此类型的报告格式进行拼写,即可以正常接入。

      一般,当我们遇到我们不懂的问题时,首先考虑一下标准协议文件,当协议文件中没有详细说明时,参考报告常用于测试工具。比较参考报文后,找出不同点,进行修正。通过这种方式,该报告的格式、请求模式和交互内容,我有个好主意。当然,如果测试工具诊断出IBC功能,如果有效的相互作用是不可能的,我们 将 考虑 到 在 这个 情况 下,IPC不支持此功能。

      5.图像异常分析和处理

      图像参数异常定位相对简单,此部分仅列出相关接口,使用测试工具验证,目前外部
      有遇到的问题,只有设置回复200 OK,但是前端参数不生效的问题,仅需要使用测试工具即可支持验证;

      协议接口:GetImagingSettings和 SetImagingSettings

      5.PTZ异常的分析和治疗

      例如:牛仔球机,ptz控制不能控制八条运动方向,控制其他制造商的ipc是可控制的.协议中规定,使用ContinuousMove接口实现八条方向,所以,我们只需要分析接口。

      处理方式:
      NVR->IPC请求报文:

      从请求报文中,我们可以获取到的信息一个是操作的PorfileToken,一个是设置的参数超时时间30s,这两个参数是我们设置给IPC的,还有400错误提示。

      IPC->NVR回复报文:

      从那里,我们可以得到参数有异常的信息,特别是时间参数异常,即NVR设置到IPC,超时
      IPC认为时间参数30秒不合理。 在此点,我们需要使用测试工具修改延迟参数来实现
      控制效果, 为实现控制的目的, 特别处理了博什的IPC.

      以下为修改后的延迟参数,以便在60岁后报告:

      在PTZ控制中的消息中:

      简要描述如下:

      在PanTilt和Zoom中空间后面的字符串相对重要,这是ipc控制ptz的坐标系统,下面的 x 、 y 和 z 分别与水平相符,偏移,聚焦参数,如果相应的坐标系统不同,通常控制效果是不同的。

      在测试工具中,使用GetServices可以获取到所有的能力集,其中ptz部分包含,relativemove和absolutemove的坐标系,如下截图所示:

      在协议规格中,协调系统相应的控制是必要的,当然,因为IPC的具体实现不同,有时也只承认连续移动协调系统,因为它需要耦合,并且只能特别处理,执行输入控制。

      5.6、使用user name token方式验证不通过

      性能:服务器返回400个错误(ter: NotAuthorized)。
      解决方案:检查用户名和密码是否正确,以及客户端和服务器的最后时间是否相同。

      5.Digest验证失败

      性能:目前只有Onvifstack实现数字的验证方法。 当服务器返回401错误时,
      Onvifstack使用 WW - Authenticate head 401 所携带的参数和密码来计算响应,但当计算的响应不正确时,服务器将返回401错误。
      解决方案:我将提供一个标准工具来衡量对这个问题的响应,最终的解决方案需要修改相应的代码。

      5.8XML中没有命名空间,或者填入错误等。

      性能: 服务器返回400个错误.
      修正: 修正命名空间.

      5.SOCKET接收和发行过程中出现的问题

      性能:Usingtelnet可以请求目标IP和端口确认服务开放。 包装正常,但没有正确的报告。
      解决方法: 检查插座部分的代码.

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/30339.html

          热门文章

          文章分类