画面、スピーカー、マイクからビデオとオーディオをキャプチャしようとしています。コマンドラインコマンドでそれを実行したいと思います。
これまでのところ、
ffmpeg -f x11grab -r 25 -s 800x600 -i :0.0 /tmp/outputFile.mpg
ビデオを記録し、
ffmpeg -f alsa -ac 2 -i Pulse -acodec libmp3lame -ab 128k ~/Videos/outpulse.mp3
マイクの音声を録音します。
両方のコマンドは、次のように組み合わせることができます。
ffmpeg -f x11grab -r 25 -s 800x600 -i :0.0 -f alsa -ac 2 -i Pulse -acodec libmp3lame -ab 128k /tmp/outputFile.mpg
画面とマイクを同じファイルに記録します。これはチュートリアルに役立ちます。
上記のコマンドをスピーカーから録音するように調整するにはどうすればよいですか?または、マイクとスピーカーを同時に録音しますか?たとえば、VoIPセッションの場合。明らかに、スピーカーからのオーディオはマイクによって録音されますが、その結果、音質が非常に悪くなります。
avconv
オプションも歓迎しますが、Linux、GUIベース、またはリポジトリに標準ではないツールは必要ありません。
あなたがpulseaudioに切り替えても構わないと思っているなら、このようなスクリプトはうまくいくでしょう:
#!/usr/bin/bash
# video information
INRES="1920x1080"
OUTRES="1280x720"
FPS="24"
QUAL="fast"
FILE_OUT="$1"
#audio information
Pulse_IN="alsa_input.pci-0000_00_1b.0.analog-stereo"
Pulse_OUT="alsa_output.pci-0000_00_1b.0.analog-stereo.monitor"
ffmpeg -f x11grab -s "$INRES" -r "$FPS" -i :0.0 \
-f Pulse -i "$Pulse_IN" -f Pulse -i "$Pulse_OUT" \
-filter_complex amerge \
-vcodec libx264 -crf 30 -preset "$QUAL" -s "$OUTRES" \
-acodec libmp3lame -ab 96k -ar 44100 -threads 4 -pix_fmt yuv420p \
-f flv "$FILE_OUT"
$Pulse_IN
および$Pulse_OUT
変数は、入力(マイク)ソースと出力(スピーカー)モニターソースの名前です。 Pulseaudioには、スピーカー出力を録音できる「モニターソース」と呼ばれるものがあります。コマンドpactl list sources | grep 'Name:'
でソースの名前を見つけることができます
残念ながら、純粋なアルサでステレオミックスソースを有効にする方法がわからないため、Pulseがおそらく最善の策です。