FFMPEG:从麦克风和扬声器录制音频的命令行选项

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 中的“音量控制”设置,然后转到“录制”选项卡,将一个通道的“捕获自”更改为“内置音频模拟立体声”(即麦克风)以及从另一个通道“捕获”到“内置音频模拟立体声监视器”(即扬声器)。

但是如何完全从命令行完成,以使其自动化以在脚本中使用。

Moh*_*han 9

最后,我找到了一种方法来实现我想要的,使用 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)