画面と内部オーディオを録音するための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
オーディオを入手できます。
答え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の実行中にのみオーディオを再マッピングできることに注意してください。
答え2
ffmpeg -f x11grab -i :0.0 -f pulse -i 0 output_30_fps_fullscreen.mp4
注:変更0pulse -i 0
マイクから音が聞こえたら(0)を適切な数字(1)に変換します。