是否可以使用 ffmpeg dshow 捕获多个音频设备?我正在尝试使用 gdigrab 捕获我的桌面,并使用 dshow 捕获麦克风和扬声器音频。我尝试使用以下命令,但它不起作用:
ffmpeg -f dshow -i audio="Stereo Mix (Realtek High Definition Audio)" -f dshow -i audio="Microphone Array (Creative VF0800)" -f gdigrab -framerate 10 -video_size 1920x1080 -draw_mouse 1 -i desktop screen.avi
它仅从第一个提到的音频设备捕获音频。我是否遗漏了上述命令中的某些选项?
答案1
最后,我发现我需要合并两个音频流。我使用 amerge 将这两个流合并为一个并将它们映射到输出。这是一个功能齐全的脚本,可以完成我想要的任务。
ffmpeg -f dshow -i audio="Stereo Mix (Realtek High Definition Audio)" -f dshow -i audio="Microphone Array (Creative VF0800)" -f gdigrab -framerate 10 -video_size 1920x1080 -draw_mouse 1 -i desktop -filter_complex "[0:a][1:a]amerge=inputs=2[a]" -map 2 -map "[a]" screen.avi
答案2
在这种情况下,您必须明确映射所有需要的流,因为自动映射只会选择一个音频流。因此,
ffmpeg -f dshow -i audio="Stereo Mix (Realtek High Definition Audio)"
-f dshow -i audio="Microphone Array (Creative VF0800)"
-f gdigrab -framerate 10 -video_size 1920x1080 -draw_mouse 1 -i desktop
-map 2 -map 0 -map 1 screen.avi