标题:Qt/C++音视频开发76-获取本地有哪些摄像头名称/ffmpeg内置函数方式
作者:liudianwu
日期:2024-06-04 11:48
内容:
## 一、前言
上一篇文章是写的用Qt的内置函数方式获取本地摄像头名称集合,但是有几个缺点,比如要求Qt5,或者至少要求安装了多媒体组件multimedia,如果没有安装呢,或者安装的是个空的呢,比如很多嵌入式板子,就算有multimedia组件,也是个空壳子,根本没有实际的功能,本身multimedia组件也是依赖具体底层多媒体实现的,依赖操作系统,如果编译Qt的时候没有识别到对应操作系统的组件,则只是编译个空壳子,并不会有实际的功能,你调用对应的函数后也是空的,返回的都是空值。或者说很多精简的环境中,默认不勾选多媒体组件,则没有这个功能。本组件号称全能吊打组件,那就必须另辟蹊径,比如采用ffmpeg内置函数的api接口去获取。
从ffmpeg5版本开始,提供的api函数接口枚举有哪些音视频输入输出设备,其实早期版本也有该函数,只是内部底层没有去实现,只是定义了相关的接口,可能后期收到不少用户的反馈意见,强烈建议完善对应的功能,在官方的加持下,在ffmpeg5版本开始已经有了对应的功能。那就是通过 av_find_input_format/avdevice_list_input_sources 函数去获取。
## 二、效果图
## 三、体验地址
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。
5. 视频主页:[https://space.bilibili.com/687803542](https://space.bilibili.com/687803542)
## 四、功能特点
### 4.1. 基础功能
1. 支持各种音频视频文件格式,比如mp3、wav、mp4、asf、rm、rmvb、mkv等。
2. 支持本地摄像头设备和本地桌面采集,支持多设备和多屏幕。
3. 支持各种视频流格式,比如rtp、rtsp、rtmp、http、udp等。
4. 本地音视频文件和网络音视频文件,自动识别文件长度、播放进度、音量大小、静音状态等。
5. 文件可以指定播放位置、调节音量大小、设置静音状态等。
6. 支持倍速播放文件,可选0.5倍、1.0 ..