Moh*_*han 3 audio microphone recording speakers ffmpeg
我在 Fedora-21 工作站上使用 ffmpeg 2.4.7 版。我想同时从麦克风和扬声器录制音频作为单独的流。我正在使用以下命令。
ffmpeg -f alsa -i pulse -f alsa -i default -acodec libmp3lame -map 0:0 -map 1:0 outfile.mkv
Run Code Online (Sandbox Code Playgroud)
但是在终端中执行此命令后,我必须转到 GUI 中的“音量控制”设置,然后转到“录制”选项卡,将一个通道的“捕获自”更改为“内置音频模拟立体声”(即麦克风)以及从另一个通道“捕获”到“内置音频模拟立体声监视器”(即扬声器)。
但是如何完全从命令行完成,以使其自动化以在脚本中使用。
最后,我找到了一种方法来实现我想要的,使用 PulseAudio 实用程序"pacmd"。
$ pacmd list-sources|awk '/index:/ {print $0}; /name:/ {print $0}; /device\.description/ {print $0}'
Run Code Online (Sandbox Code Playgroud)
运行上述命令,获取所有系统录制接口的名称。下面给出了示例输出。
index: 0
name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
device.description = "Monitor of Built-in Audio Analog Stereo"
* index: 1
name: <alsa_input.pci-0000_00_1b.0.analog-stereo>
device.description = "Built-in Audio Analog Stereo"
Run Code Online (Sandbox Code Playgroud)
现在,运行以下命令同时从麦克风和扬声器录制音频。
$ ffmpeg -f pulse -i alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -f pulse -i alsa_input.pci-0000_00_1b.0.analog-stereo -acodec libmp3lame -map 0:0 -map 1:0 outfile.mkv
Run Code Online (Sandbox Code Playgroud)