画面と内部オーディオを記録するためのffmpegコマンドとは何ですか(Ubuntu 18.04)。
うまくいかなかった多くのことを省略して、探しているものに近いものにスキップします。
V="$(xdpyinfo | grep dimensions | Perl -pe 's/.* ([0-9]+x[0-9]+) .*/$1/g')"
A="$(pacmd list-sources | grep -PB 1 "analog.*monitor>" | head -n 1 | Perl -pe 's/.* //g')"
F="$(date --iso-8601=minutes).mkv"
ffmpeg -video_size "$V" -framerate 10 -f x11grab -i :0.0 -f Pulse -ac 2 -i "$A" "$F"
ビデオは取得できますが、オーディオは取得できません。
parecord -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor example.wav # index: 1
オーディオを取得します。
フレームレートは両方のストリームに適用されますが、ffmpegのドキュメントの例が散在しているので、ここに回答を残します
A="$(pacmd list-sources | grep -PB 1 "analog.*monitor>" | head -n 1 | Perl -pe 's/.* //g')"
F="$(date --iso-8601=minutes | Perl -pe 's/[^0-9]+//g').mkv"
V="$(xdpyinfo | grep dimensions | Perl -pe 's/.* ([0-9]+x[0-9]+) .*/$1/g')"
ffmpeg -loglevel error -video_size "$V" -f x11grab -i :0.0 -f Pulse -i "$A" -f Pulse -i default -filter_complex amerge -ac 2 -preset veryfast "$F"
どこ
#A=1
#F=2018121711440500.mkv
#V=2560x1440
ffmpeg
ツール-loglevel error
印刷エラーのみ-video_size "$V"
画面の解像度(またはサブセクションのみを記録したい場合は、それ以下)-f x11grab
画面を記録します(ウェイランドでは画面の記録ができない場合がありますか?)-i :0.0
X11画面ID(オフセットに+ x、yを追加することもできます)-f Pulse
オーディオドライバ-i "$A"
オーディオストリームのID-f Pulse
オーディオドライバーを再度使用します(おそらく不要ですか?)-i default
通常はシステムマイク-filter_complex amerge
2つのオーディオストリームをマージする-ac 2
4つのオーディオチャンネルを2つに変換-preset veryfast
スタッターを回避するためにビデオエンコーディングを軽くする"$F"
出力ファイルパラメータの順序が重要であり、pavucontrol
はffmpegの実行中にのみオーディオを再マップできることに注意してください。