作者:admin 日期:2023-09-10 浏览: 次
Qt编写视频监控系统72
之前监控系统中原创的onvif协议解析机制,已经能够满足绝大部分用户的需要,比如搜索设备、获取视频流地址并播放、云台控制、预置位管理、图片亮度色彩饱和度等参数设置等,近期又多了一个需求,那就是通过onvif国际标准协议来对摄像头的OSD进行增删改查,可以通过协议添加OSD、删除OSD、修改OSD、查询所有OSD集合信息等,在早期的厂家监控设备,很多厂家是不支持该协议的,所以一直也没有去实现,目前测试下来是几个大厂比如??荡蠡钍犹斓匚耙档仁迪至耍鱿抻诠俜降谋曜脊斓纳璞?,如果是一些冒牌的设备,尽管后台看起来极其相似或者一模一样,也未必支持,目前经历过N多形形色色的用户现场测试,发现有些厂家做的设备兼容了??荡蠡乃接行?,然后后台也做的极其相似,搞得跟真的一样,其实很多都是冒牌的,基本上只实现了基础的功能比如拉音视频流,当你遇到这些设备时,会发现很多需求比较少的功能其实是没有的。
由于qsoap等框架比较臃肿而且api接口极其难用,所以特意从底层协议解析来实现的onvif交互,其实底层就两个,搜索采用udp组播,交互采用http请求,还是万变不离其中,无非就是udp/tcp,在Qt中udp组播先绑定指定网卡udpSocket->bind(QHostAddress(localIP), 0, QUdpSocket::ShareAddress);,然后指定固定的onvif组播地址239.255.255.250和端口3702发送xml格式的文本信息,只要是局域网内和该网卡地址相通的支持onvif协议的设备,都会返回,告知自己的设备地址等信息。
onvif协议的常规功能: