ffmpegを使用した画面と内部オーディオの録音

ffmpegを使用した画面と内部オーディオの録音

画面と内部オーディオを録音するための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.0X11画面ID(+ x、yをオフセットとして追加することもできます)
  • -f pulseオーディオドライバ
  • -i "$A"オーディオストリームID
  • -f pulseオーディオドライバの再(不要な場合があります)
  • -i default一般的にシステムマイク
  • -filter_complex amerge2つのオーディオストリームをマージ
  • -ac 24つのオーディオチャンネルを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)に変換します。

関連情報