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

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

但是在终端中执行此命令后,我必须转到 GUI 中的“音量控制”设置,然后转到“录音”选项卡,将一个通道的“捕获自”更改为“内置音频模拟立体声”(即麦克风)并将另一个通道的“捕获自”更改为“内置音频模拟立体声监视器”(即扬声器)。

但是,如何才能完全从命令行完成此操作,以便自动化并在脚本中使用。

答案1

最后我找到了一种方法来实现我想要的,使用 PulseAudio 实用程序“pacmd”

这个教程帮助我

$ pacmd list-sources|awk '/index:/ {print $0}; /name:/ {print $0}; /device\.description/ {print $0}'

运行上述命令以获取所有系统记录接口的名称。示例输出如下所示。

    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"

现在,运行以下命令同时从麦克风和扬声器录制音频。

$ 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

答案2

认为0是你的显示器。模拟(PC)和1是您的模拟(麦克风)流。为了获得一个输出文件,您可以在其中听到来自麦克风和 PC 的音频,请运行以下命令:

ffmpeg -f pulse -i 0 -f pulse -i 1 -filter_complex amix=inputs=2 both_streams.m4a

相关内容