标题:Qt支持RKMPP硬解的视频监控系统/性能卓越界面精美/实时性好延迟低/录像存储和回放/云台控制
作者:liudianwu
日期:2024-11-29 08:55
内容:
## 一、前言
之前做的监控系统,已经实现了在windows上硬解码比如dxva2和d3d11va,后续又增加了linux上的硬解vdpau的支持,这几种方式都是跨系统的硬解实现方案,也是就是如果都是windows系统,无论X86还是ARM都通用,在系统层面屏蔽了实现细节,按照规范来写就行,这种方式叫跨硬件但是不跨系统,无论是英特尔显卡还是英伟达显卡都一样,无需区分具体用的什么显卡。后面还有跨系统但是不跨硬件的策略,典型的就是针对英伟达显示,代码可以跨系统,但是不支持其他显卡。现在随着越来越多的嵌入式板子,尤其是RK3588,默认有个RKMPP的硬解,用户在这个场景下的需求也越来越多,于是也要增加支持。
最早监控系统开发就已经考虑好了模块化的方式,采用一个个core组件模块来实现,这样一旦某个组件模块更新了代码,只需要替换这个组件的代码就行,一般就是一个pri带一个目录,同理监控内核ffmpeg模块也是如此,于是抽空将对RKMPP硬解的支持也加入了其中,这其中的关键并不是使用硬解解码部分,后面捣鼓下来发现关键是要编译一个支持RKMPP硬解的ffmpeg库就行(https://github.com/nyanmisaka/ffmpeg-rockchip),把这个库替换掉,然后硬解名称选择RKMPP即可,整个硬解流程和之前的dxva2/d3d11va一模一样,然后解码后的数据发给opengl绘制,数据格式一般是NV12。打完收工非常完美。
## 二、效果图
## 三、相关地址
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_demo/bin_video_system。
## 四、功能特点
1. 支持各种本地音视频文件和网络音视频文件,格式包括mp3、aac、wav、wma、mp4、mkv、rmvb、wmv、mpg、flv、asf等。
2. 支持各种网络音视频流,网络摄像头,协议包括rtsp、rtmp、http等。
3. 支持本地摄像头设备推流,可指定分辨率、帧率、格式等。
4. 支持本地桌面采集推流,可指定屏幕索引 ..