[FFmpeg] 输入设备 dshow 的使用——用电脑摄像头和麦克风录视频

dshow

Windows DirectShow input device.

输入名称应为如下格式:

TYPE=NAME[:TYPE=NAME]
TYPE 是 audio 或 video , NAME 是设备的 name 或 alternative name。

详细选项参见:http://ffmpeg.org/ffmpeg-all.html#Options-44

打印 DirectShow 支持的设备列表(true 可用1替换):

ffmpeg -list_devices true -f dshow -i dummy
本计算机打印出的信息如下:

[dshow @ 0000000002f282c0] DirectShow video devices (some may be both video and audio devices)
[dshow @ 0000000002f282c0]  "HP Truevision HD"
[dshow @ 0000000002f282c0]     Alternative name "@device_pnp_\\?\usb#vid_1bcf&pid_2c0e&mi_00#7&2d59f11c&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
[dshow @ 0000000002f282c0] DirectShow audio devices
[dshow @ 0000000002f282c0]  "Internal Microphone Array (IDT High Definition Audio CODEC)"
[dshow @ 0000000002f282c0]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{0384A54D-E450-4FE5-909B-075A45EC97C1}"
[dshow @ 0000000002f282c0]  "Stereo Mix (IDT High Definition Audio CODEC)"
[dshow @ 0000000002f282c0]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{8297745C-A133-46C5-A7BD-1056E6064A3E}"

打开电脑摄像头和麦克风:

ffplay -f dshow -i video="HP Truevision HD":audio="Internal Microphone Array (IDT High Definition Audio CODEC)"
录一段视频,按 q 键停止:

ffmpeg -f dshow -i video="HP Truevision HD":audio="Internal Microphone Array (IDT High Definition Audio CODEC)" -s 640x360 -b:v 1000k -b:a 128k output.mkv


### 使用 FFmpeg 进行音频文件采集 在 Windows 下可以通过 `ffmpeg` 命令工具轻松完成音频文件的采集工作。对于想要指定特定音频设备作为输入源的情况,可以先通过枚举系统上的音视频采集设备找到所需的设备名称。 #### 枚举音频设备 要查看当前系统中存在的音视频采集设备及其对应的名称,可以在命令行中运行如下命令: ```shell ffmpeg -i dummy ``` 如果遇到中文字符显示为乱码的问题,则应调整命令行窗口编码至 UTF-8 来解决此问题[^2]。 #### 制音频到文件 一旦确认了目标音频设备的确切名称之后,就可以利用该名称来进行制操作。下面是一个例子,它会把来自名为 "麦克风阵列 (11- USB PnP Audio Device)" 的音频流转换成 MP3 文件保存下来: ```shell ffmpeg -f dshow -i audio="麦克风阵列 (11- USB PnP Audio Device)" output.mp3 ``` 这里的 `-f dshow` 参数指定了使用 DirectShow 方式读取数据;而 `-i audio=...` 则用于设定具体的音频输入路径。 另外,在 Linux 平台上也可以采用类似的思路来收集摄像头或其他类型的媒体资源,并将其保存为不同的格式如 MP4 等[^3]。不过需要注意的是,不同操作系统之间可能存在细微差异,因此建议查阅官方文档获取最准确的信息。 当处理原始 PCM 数据,可能还需要考虑设置适当的参数以匹配预期的目标格式,比如比特率、声道数量以及样本格式等属性。例如,假设有一个未经压缩的 PCM 音频文件,那么可以用以下指令对其进行回放测试: ```shell ffplay -ar 44100 -ac 2 -f s16le input.pcm ``` 其中 `-ar`, `-ac`, `-f` 分别代表采样频率、声道数目文件格式选项[^4]。 最后值得注意的一点是,从实际硬件捕获来的音频信号通常不是可以直接使用的状态,往往需要经过一系列预处理步骤——包括但不限于解码与重采样——才能满足后续编码过程的要求[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值