标题:Qt编写跨平台视频监控系统(64通道占用7%CPU/支持win_linux_mac等)
作者:liudianwu
日期:2022-11-24 09:26
内容:
## 一、前言
视频监控组件经历过数十年的迭代,从最初的只简单播放个rtsp视频流,到现在支持各种音频视频文件格式(mp3、wav、mp4、asf、rm、rmvb、mkv等)、支持各种视频流格式(rtp、rtsp、rtmp、http等)、支持本地摄像头设备等。后面又陆续搞了音视频同步,硬解码、音视频文件保存等,陆陆续续完善了很久,再到后面搞了共享解码线程,打开相同地址的16路1080P主码流,CPU占用从70%降到了5%,这个提升是巨大的,和我追求极致完美的代码追求相符合,当然做不到完美,但是尽可能做到比以前更好。
把视频监控组件全部搞定以后,移植到视频监控系统中花了不少的精力,包括所有的视频配置参数,全部撤换成新版的按照最新的监控组件的,包括画面显示策略(自动调整/等比缩放/拉伸填充)、视频显示模式(句柄/绘制/GPU)、硬件加速类型(none/dxva2/d3d11va)、通信方式(tcp/udp)、解码策略(速度优先/质量优先/均衡处理/最快速度)、缓存大小等,去掉了一些几百年不用的参数,所有参数都有默认值。
## 二、功能特点
### (一)、软件模块
1. 视频监控模块,各种停靠小窗体子模块,包括设备列表、图文警情、窗口信息、云台控制、预置位、巡航设置、设备控制、悬浮地图、网页浏览等。
2. 视频回放模块,包括本地回放、远程回放、设备播放、图片回放、视频上传等。
3. 电子地图模块,包括图片地图、在线地图、离线地图、路径规划等。
4. 日志查询模块,包括本地日志、设备日志等。
5. 系统设置模块,包括系统设置(基本设置、视频参数、数据库设置、地图配置、串口配置等)、录像机管理、摄像机管理、轮询配置、录像计划、用户管理等。
### (二)、基础功能
1. 支持各种视频流(rtsp、rtmp、http等)、视频文件(mp4、rmvb、avi等)、本地USB摄像机播放。
2. 支持多画面切换,包括1、4、6、8、9、13、16、25、36、64画面切换。
3. 支持全屏切换,多种切换方式包括鼠标右键菜单、工具栏按钮、快捷键(alt+enter全屏,esc退出全屏)。
4. 支持视频轮询,包括1、4、9、16画面轮询,可设置轮询分组(轮询预案)、轮询间隔、码流类型等。
5. 支持onvif协议,包括设备搜索、云台控制、预置位、设备控制(图片参数、校对时间、系统重启,抓拍图片等)。
6. 支持权限管理,不同的用户可以对应不同的模块权限,比如删除日志、关闭系统等。
7. 数据库支持多种,包括sqlite、mysql、sqlserver、postgresql、oracle、人大金仓等。
8. 本地USB摄像机支持设置分辨 ..
#1 [tanyue.esec 11-24 11:13]
太厉害了
#2 [qq771834540 12-13 12:41]
太牛了。