ffmpeg、キャプチャ中に 2 つの出力ファイルを作成するにはどうすればいいですか?

ffmpeg、キャプチャ中に 2 つの出力ファイルを作成するにはどうすればいいですか?

次のコマンド ラインを使用して、デスクトップのビデオとオーディオを MP4 に正常にキャプチャする画面録画プロジェクトがあります。

ffmpeg -report -y -f x11grab -s 1920x1080 -r 5 -thread_queue_size 3000 -i :44
    -f alsa -ac 1 -thread_queue_size 3000 -i hw:Loopback,1,0 -c:v libx264
    -preset veryfast -crf 28 -movflags +faststart -pix_fmt yuv420p -c:a aac
    -strict -2 video_and_audio_output.mp4

それはうまくいきます。私が望んでいるのは、ファイルを 2 度目に処理することなく、オーディオ トラックだけを含む追加の出力を同時に作成することです。これは可能ですか? もし可能であれば、パラメータの設定方法について何かヒントはありますか?

答え1

使用ティーマルチプレクサー:

ffmpeg -f x11grab -video_size 1920x1080 -framerate 5 -thread_queue_size 3000
    -i :44 -f alsa -channels 1 -thread_queue_size 3000 -i hw:Loopback,1,0 -map 0
    -map 1 -c:v libx264 -preset veryfast -crf 28 -pix_fmt yuv420p -c:a aac -f tee
    "[select=v,a:movflags=+faststart]video_and_audio_output.mp4|[select=a:movflags=+faststart]audio.m4a"
  • のためにx11グラブ-video_sizeの代わりに-s-framerateの代わりにを使用してください-r
  • のためにアルサ-channelsの代わりにを使用します-ac
  • 古いバージョンのみ、-strict -2(または-strict experimental) を使用してエンコードする必要があります-c:a aac

関連情報