Qt编写本地摄像头综合应用示例(qcamera/ffmpeg/v4l2等)
2023-09-14 09:01:41 时间
一、功能特点
- 同时支持 qcamera、ffmpeg、v4l2 三种内核解析本地摄像头。
- 提供函数 findCamera 自动搜索环境中的所有本地摄像头设备,搜索结果信号发出。
- 支持自动搜索和指定设备两种模式,自动搜索模式下会将搜索到的第一个设备作为当前设备打开。
- 支持同时打开多路设备,亲测4路,受限于具体的环境比如带宽。
- 支持自动重连,默认开启,失败后会自动重新搜索和尝试打开。
- ffmpeg方案、v4l2方案都支持回调模式(采集后转成QImage绘制)和句柄模式(采集后YUV数据GPU绘制,性能高)。
- 视频显示位置自动调整算法,当视频分辨率超过显示控件大小则等比例缩放居中显示,不超过则原尺寸居中显示,还可设置拉伸填充显示。(自动调整、等比例缩放、拉伸填充)。
- 可选不同的分辨率来打开摄像头,支持 160x120、320x240、640x480、800x600、1280x720、1280x960、1920x1080 等。
- 可选不同的帧率来打开摄像头,支持 0(采用默认值)、5、、10、15、20、25、30 等。
- 支持抓拍截图,传入文件名则自动保存截图文件,不传入则将图片数据QImage信号发出。
- 提供函数接口 开始播放play、停止播放stop、暂停播放pause、继续播放next。
- 支持动态热插拔加载,包括自动读取所有设备名称到下拉框。
- 支持录像文件存储(目前仅限QCamera方案),提供开始录像recordStart、暂停录像recordPause、停止录像recordStop 等函数。
- 提供二维码示例,自动采集画面识别二维码,支持自动将识别到的二维码重新生成大图,支持选择图片文件解析二维码,支持手动输入文本内容生成二维码。
- 提供图片传输示例,自动将打开的摄像头视频实时传输出去,服务器端接收后解析显示。次方案可以作为将本地的摄像头实时画面远程传输,比如嵌入式板子上的摄像头画面传输到PC端显示。
- 支持等比例拉伸填充显示,画面宽高小于显示控件的宽高则以原视频大小为准,大于则按照显示控件的尺寸等比例缩放居中。
- 视频控件悬浮条自带开始和停止录像切换、声音静音切换、抓拍截图、关闭视频等功能。
- 音频组件支持声音波形值数据解析,可以根据该值绘制波形曲线和柱状声音条,默认提供了声音振幅信号。
- 内核ffmpeg支持音视频合并保存到MP4文件。
- 解码线程和显示窗体分离,可指定任意解码内核挂载到任意显示窗体,动态切换。
- 支持共享解码线程,默认开启并且自动处理,当识别到相同的视频地址,共享一个解码线程,这样只要打开一个本地摄像头就可以共享到几十个几百个通道展示。
- 代码框架和结构优化到极致,性能彪悍,持续迭代更新升级。
- 源码支持Qt4、Qt5、Qt6,兼容所有版本。
二、效果图
三、体验地址
- 体验地址:https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取码:01jf 名称:bin_video_camera.zip
- 国内站点:https://gitee.com/feiyangqingyun
- 国际站点:https://github.com/feiyangqingyun
- 个人主页:https://blog.csdn.net/feiyangqingyun
- 知乎主页:https://www.zhihu.com/people/feiyangqingyun/
相关文章
- QT学习之QString的arg方法
- QT-Qt组件QTimer使用方法
- Qt音视频开发21-mpv内核万能属性机制
- Qt音视频开发22-通用GPU显示
- Qt编写自定义控件40-导航进度条
- Qt编写的项目作品8-视频综合应用示例
- Qt编写推流综合应用示例(文件推流/桌面推流/本地摄像头/网络摄像头/转发推流/视频分发)
- Qt编写的视频播放综合应用示例(qmedia/ffmpeg/vlc/mpv/海康sdk/easyplayer等)
- Qt编写的项目作品33-斗图神器(雨田哥作品)
- Qt编写的项目作品23-推流综合应用示例
- Qt编写安防视频监控系统14-本地回放
- Qt编写地图综合应用36-覆盖物折线
- Qt编写地图综合应用34-生成区域轮廓图
- Qt编写地图综合应用33-雨量分布
- Qt编写地图综合应用31-仪表盘
- Qt编写地图综合应用22-动态轨迹
- Qt自定义Model
- QT QMapIterator
- 【Qt】qt5.12报错 error: ‘type_traits‘ file not found
- Qt在线安装网址
- Qt之界面(自定义标题栏、无边框、可移动、缩放)
- Qt 之透明提示框
- QT音频开发:使用QAudioInput+QAudioOutput实现录音机功能,支持选择指定声卡录音,指定扬声器放音
- Qt+Ffmpeg音视频播放(未解决同步问题)
- 简单QT应用了可实现手动布局QT应用
- Qt数据库应用6-数据图文混排
- Qt数据库应用2-数据导出到xls