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