1つのファイルにフィルタを使い分けたり、コピーしたり複数出力する方法のまとめ。ファイルからネットワーク越しに配信するときに「Past duration too large」のログが大量に発生するときは、-vsync passthrough -frame_drop_threshold 4を入力ファイルの後ろに指定する。
普通のコマンド。1入力を2度エンコードを行い2出力する。つまり負荷も2倍。コーデックやフィルタ指定してその後ろに出力ファイルの指定があるときは指定子はなくてもよい。
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -c:a copy output1.mp4 -c:v libvpx-vp9 -c:a libopus output2.webm
ffmpeg -i input.mp4 -movflags +faststart -c:v:0 libx264 -c:a:0 copy output1.mp4 -c:v:1 libvpx-vp9 -c:a:1 libopus output2.webm
1入力で複数コピー出力するコマンド。
ffmpeg -i input.mp4 -c copy -movflags +faststart output1.mp4 -c copy -movflags +faststart output2.mp4
ffmpeg -i input.mp4 -c copy -map 0:v -map 0:a -movflags +faststart -flags +global_header -f tee "output1.mp4|output2.mp4"
Continue reading “ffmpeg で複数出力”