标题:Qt编写视频监控系统76-Onvif跨网段组播搜索和单播搜索的实现
作者:liudianwu
日期:2023-05-28 13:05
内容:
## 一、前言
在视频监控行业一般会用国际onvif工具来测试设备是否支持onvif协议,工具的名字叫ONVIF Device Manager(还有个工具叫ONVIF Device Test Tool,专用于程序员测试各种数据交互),可以自行搜索下载,此工具位国际官方工具,如果此工具搜索不到摄像机,则说明该摄像机不是真正的onvif摄像机,不是标准的摄像机,目前市面上的绝大部分网络摄像机都支持onvif。具体用法可以参考 [https://www.cnblogs.com/lsdb/p/9157302.html](https://www.cnblogs.com/lsdb/p/9157302.html)。
官方的onvif工具尽管用户数巨大,但是也存在不少缺点,比如不能选择对应网卡搜索,而且在某些时候鉴权会失败,年久失修,几乎快十年都没有更新了,所以特意用Qt底层代码协议实现onvif的相关功能,非gsoap的代码,采用原创的udp组播和http请求进行处理,通过抓包来兼容各个厂家各种不同版本的协议。
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) 提取码:01 ..
#1 [tanyue.esec 05-29 08:38]
太厉害了,跟着这个系列,相当于视频监控行业扫盲了