首页| 论坛| 消息
主题:Qt开发国产视频监控系统/手撕代码实现/加密保存播放记录/支持kylin和uos国产系统
liudianwu发表于 2025-11-12 07:48
## 一、前言说明
视频监控系统采用纯Qt+ffmpeg实现,所有UI用的QWidget,外观这块主要是qss+自定义控件,ffmpeg负责解码,尤其是支持硬解码,然后解码出来的yuv和nv12数据用qpainterwidget展示,硬解码+GPU绘制这个组合非常高效,在各个系统和平台上测试下来,资源占用低,性能极好。
整个监控系统,能够拿的出手的细节数不胜数,至少200个,是不是很惊讶哪来的这么多细节?因为本监控系统好歹也是开发了十几年,一直在实际现场N多用户无数复杂的场景使用,光用户提出来的合理的实际需求,起码能打印十张A4纸,正是因为有这些实际场景的反馈,才能不断迭代,发展到今天,无数个日日夜夜做过无数的调整,修复bug,增加人性化操作处理,其中加密保存播放记录就是其中一个小细节。
一开始并没有播放记录的处理,后面用户希望重新打开监控系统后,能够主动加载上一次没有关闭的画面,而不是让用户又去双击通道打开,所以单独做了个开关saveurl,开启后就会自动将最后的画面的媒体地址保存到url.txt文本文件,前面有对应的通道序号,下次软件启动后,先读取这个文件,依次去打开视频通道。后面实际使用过程中发现问题,毕竟现场都是外接的监控摄像头,都是个带用户鉴权新的rtsp地址,明文存储在文本文件,很容易泄露,增加摄像头的风险,所以必须有密文存储的机制,加载的时候解密转换成真实的url地址。实现完成后,还特意做了个开关,需要这个功能的时候开启,默认关闭,因为很多用户又希望直接从播放记录文件复制地址放到vlc播放器验证。
## 二、效果图

## 三、相关地址
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
## 四、功能特点
1. 视频监控主界面采用停靠窗体模式,所有功能以可拖拽的小模块形式集成,支持任意自定义模块加入。
2. 所有停靠模块(如设备列表、图文警情、窗口信息、云台控制、预置巡航、视频轮询、设备控制、悬浮地图、网页浏览等)均可自由拖动至任意位置嵌入或悬浮,支持最大化、全屏及多屏显示。
3. 支持“显示所有模块”、“隐藏所有模块”、“复位普通布局”、“复位全屏布局”等布局管理操作。
4. 采用双重布局文件存储机制:普通模式与全屏模式各自保存独立布局,自动切换;全屏模式可实现透明模块叠加,视觉更具科技感。
5. 所有停靠模块自动生成对应菜单项,可通过标题栏右键控制其显示或隐藏。
6. 视频监控面板支持 1、4、6、8、9、13、16、25、36、64 等多种画面布局切换。
7. 支持全屏切换,方式包括鼠标右键菜单、工具栏按钮、快捷键(Alt+Enter 进入全屏,Esc 退出)。
8. 支持视频轮询功能,可在 1/4/9/16 画面下进行轮询,支持设置轮询分组(预案)、轮询间隔、码流类型等。
9. 摄像机节点可直接拖曳到视频窗体播放实时流;也支持拖曳本地视频文件(MP4、RMVB、AVI 等)直接播放。
10. 设备树双击分组节点可自动打开该组下所有视频通道;双击设备子节点则直接播放对应视频流;系统自动加载上次展开的节点状态。
11. 设备树支持多级自定义分组:可添加、删除、修改分组,支持任意层级结构。
12. 设备树可配置:是否放大字体显示、是否显示主/子码流节点、是否自动隐藏空组(无设备的分组)。
13. 视频通道支持拖曳交换位置,响应即时;也支持将通道拖出监控面板外删除。
14. 删除视频支持多种方式:鼠标右键删除、悬浮条关闭按钮、拖出面板外删除等。
15. 支持 ONVIF 协议,兼容海康、大华、宇视、天地伟业、华为等主流厂商设备。
16. 支持 ONVIF 设备搜索(UDP 广播 + HTTP 请求),不依赖 gsoap 等第三方组件,采用原创轻量级协议解析机制。
17. 支持 ONVIF 云台控制:上下左右移动、焦距调整、复位等操作。
18. 支持 ONVIF 预置位管理:可添加、删除、修改预置位,并调用指定预置位。
19. 支持 ONVIF OSD 配置:可增删改查屏幕叠加信息。
20. 支持 ONVIF 图像参数调节:亮度、对比度、饱和度、锐度等。
21. 支持 ONVIF 其他设备控制:抓拍图片、校对时间、系统重启、网络配置、事件订阅等。
22. 支持多种音视频流协议:RTSP、RTMP、HTTP、SRT、WebSocket(WS)等。
23. 支持播放本地音视频文件:MP4、RMVB、AVI 等常见格式。
24. 支持采集本地设备:包括摄像头、麦克风、桌面录屏,可设置分辨率、帧率,支持多显示器采集。
25. 支持设置视频流传输方式(TCP/UDP)

浏览大图
下一页 (1/4)
回帖(0):

全部回帖(0)»
最新回帖
收藏本帖
发新帖