1つのファイルにフィルタを使い分けたり、コピーしたり複数出力する方法のまとめ。
普通のコマンド。1入力を2度エンコードを行い2出力する。つまり負荷も2倍。
ffmpeg -i input.mp4 -movflags +faststart -vcodec libx264 -acodec copy output1.mp4 -vcodec libvpx-vp9 -acodec libopus output2.webm
1入力で複数コピー出力するコマンド。
ffmpeg -i input.mp4 -movflags +faststart -c copy -movflags +faststart output1.mp4 -c copy output2.mp4
ffmpeg -i input.mp4 -movflags +faststart -c copy -f tee -map 0:v -map 0:a "output1.mp4|output2.mp4"
さらにフィルタを挟むことも可能。
ffmpeg -i input.mp4 -filter_complex scale=640x360 -movflags +faststart -f tee -map 0:v -map 0:a -vcodec libx264 -acodec copy "output1.mp4|output2.mp4"
出力先がローカルではなく配信先も可能。
ffmpeg -i input.mp4 -vsync passthrough -frame_drop_threshold 4 -map 0:v -map 0:a -flags +global_header -movflags +faststart -vcodec libx264 -acodec aac -f tee "[f=flv:onfail=ignore]rtmp://hogehoeg|[f=flv:onfail=ignore]rtmp://piyopiyo|D:\output.flv"
複数解像度で配信して動画も保存するコマンド。
ffmpeg -i input.mp4 -vsync passthrough -frame_drop_threshold 4 -filter_complex split[1],scale=1280x720[720p];[1]scale=1920x1080[1080p] -map [720p] -map 0:a -flags +global_header -vcodec libx264 -acodec aac -f tee "[f=flv:onfail=ignore]rtmp://hogehoge|D:\output-720p.flv" -map [1080p] -map 0:a -flags +global_header -vcodec libx264 -acodec aac -f tee "[f=flv:onfail=ignore]rtmp://piyopiyo|D:\output-1080p.flv"
一度に複数解像度にエンコードするコマンド。
ffmpeg -i input.mp4 -filter_complex split=3[0][1],scale=1920x1080[1080p];[0]scale=1280x720[720p];[1]scale=640x360[360p] -map [1080p] -map 0:a -movflags +faststart -vcodec libx264 -acodec aac output-1080p.mp4 -map [720p] -map 0:a -movflags +faststart -vcodec libx264 -acodec aac output-720p.mp4 -map [360p] -map 0:a -movflags +faststart -vcodec libx264 -acodec aac output-360p.mp4
ネットラジオなどリアルタイム配信している動画をコピー出力と1.5倍速出力を同時に行うコマンド。
ffmpeg -i "http://hogehoge" -c copy -bsf:a aac_adtstoasc output.mp4 -vf "setpts=2*PTS/3" -af "atempo=1.5" -vcodec libx264 -acodec aac output-x1.5.mp4
さらに VOD RTMP 配信の場合はバッファを増やさないと保存が遅くなる。
ffmpeg -rtmp_buffer 36000000 -i "rtmp://hogehoge" -c copy output.flv -vf "setpts=2*PTS/3" -af "atempo=1.5" -vcodec libx264 -acodec aac output-x1.5.flv
関連記事