• 536阅读
  • 0回复

Qt编写视频监控系统77-Onvif组件支持非正常时间的设备 [复制链接]

上一主题 下一主题
离线liudianwu
 

只看楼主 倒序阅读 楼主  发表于: 2023-05-30


## 一、前言
在经历了大量的现场设备测试,至少几十种厂家、几百种设备,遇见过奇奇怪怪的问题,一个个想方设法解决,发现有个问题是在下发鉴权的时候,需要带上设备的时间,而不是发送端的时间,如果带的不是设备上的时间很可能鉴权失败。这个问题亲测十几种市面上各种视频监控系统客户端,均未实现,通过抓包分析,客户端软件带的鉴权信息中是本地的时间,而不是设备的时间,导致根本无法通过onvif协议来加载该设备,这种体验非常的不友好,因为很可能设备出厂时间是1970年或者2000年等,而且设备上未必带有电池,断电后时间一长,时间很可能又恢复了,而设置日期时间指令也需要带上鉴权信息,但是好在获取日期时间指令是不需要鉴权信息的,于是通过这个为突破口,首次需要鉴权信息的指令前,主动获取下设备的日期时间,然后和本地的时间比较,取出一个秒数差值(设备上的时间和本地时间相差多少秒),如果设备是2000年那这个差值就是一个很大的负数值,在准备鉴权信息的时候,取本地时间加上这个差值即可,这样相当于下发的时间就是设备上的时间。如果设备上的时间更新过,则需要重新获取时间即可。

Onvif组件功能设计:

- 搜索设备,获取设备的信息比如厂家、型号等。
- 可指定网卡搜索,可能有多个网卡多个网段地址。
- 可手动指定单个设备地址搜索,用于组播搜索不通但是网络通的情况。
- 可以选择累加的方式统计搜索到的设备,在跨网段大量设备的情况下尤其需要。
- 获取设备的多个配置文件信息profile。
- 获取对应配置文件的视频流地址rtsp,以及分辨率等参数。
- 云台控制,上下左右移动,焦距放大缩小,相对和绝对移动。
- 获取预置位信息,增删改查,触发预置位。
- 订阅事件,接收设备的各种消息尤其是报警事件比如IO口的报警。
- 抓图,获取设备当前的图片
- 获取和设备网络配置信息比如IP地址等。
- 获取和设置NTP时间同步以及设置设备时间。
- 获取和设置视频参数和图片参数(亮度、色彩、饱和度)。
- 重启设备。
- 增加、删除、修改、查询OSD信息。

## 二、效果图



## 三、体验地址
1. 国内站点:[https://gitee.com/feiyangqingyun](https://gitee.com/feiyangqingyun)
2. 国际站点:[https://github.com/feiyangqingyun](https://github.com/feiyangqingyun)
3. 个人作品:[https://blog.csdn.net/feiyangqingyun/article/details/97565652](https://blog.csdn.net/feiyangqingyun/article/details/97565652)
4. 体验地址:[https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g](https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g) 提取码:01jf 文件名:bin_video_system。
4条评分好评度+1贡献值+1金钱+10威望+1
20091001753 好评度 +1 - 2023-05-30
20091001753 贡献值 +1 - 2023-05-30
20091001753 威望 +1 - 2023-05-30
20091001753 金钱 +10 - 2023-05-30
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
快速回复
限100 字节
 
上一个 下一个