H.264 → libx264、H.265 → libx265 に対応。
$ ffmpeg -framerate 30 -i path/to/dir/%05d.png -vcodec libx265 -pix_fmt yuv420p -r 30 output.mp4
リサイズ (-1は縦横比を合わせる指定)
$ ffmpeg -framerate 30 -i path/to/dir/%05d.png -vf scale=320:-1 -vcodec libx265 -pix_fmt yuv420p -r 30 output.mp4
品質 (固定品質, crfの数値が小さくなると高品質。デフォルトは23)
$ ffmpeg -framerate 30 -i path/to/dir/%05d.png -vf scale=320:-1 -vcodec libx265 -crf 10 -pix_fmt yuv420p -r 30 output.mp4
連番インデックスの途中から始める (-start_number)
$ ffmpeg -r 30 -start_number 2782 -i "DSC%05d.JPG" -vcodec libx264 -pix_fmt yuv420p -r 30 output.mp4
$ ffmpeg -i input.mp4 -vf scale=320:-1 -r 15 output.gif
カラーパレットを使う方法。きれいにgifアニメができる
$ ffmpeg -i input.mp4 -vf "palettegen" -y palette.png
$ ffmpeg -i input.mp4 -i palette.png -lavfi "fps=15,scale=320:-1:flags=lanczos [x]; [x][1:v] paletteuse=dither=bayer:bayer_scale=5:diff_mode=rectangle" -y output.gif
時間を指定する(3秒目から10秒間)
$ ffmpeg -i input.mp4 -vf "palettegen" -y palette.png
$ ffmpeg -i input.mp4 -i palette.png -ss 3 -t 10 -lavfi "fps=10,scale=320:-1:flags=lanczos [x]; [x][1:v] paletteuse=dither=bayer:bayer_scale=5:diff_mode=rectangle" -y output.gif
5倍速再生 (PTF/5.0)
$ ffmpeg -i input.mp4 -vf "palettegen" -y palette.png
$ ffmpeg -i input.mp4 -i palette.png -lavfi "fps=%5,scale=640:-1:flags=lanczos,setpts=PTS/5.0 [x]; [x][1:v] paletteuse=dither=bayer:bayer_scale=5:diff_mode=rectangle" -y output.gif
$ ffmpeg -i input.mp4 -ss 秒数 -frames:v 1 image.png
$ ffmpeg -i input.mp4 -vcodec copy -an output.mp4
#!/usr/bin/ruby
Dir.glob("*.mp4").sort.each do |src|
dst = File.basename(src, ".mp4") + ".m4v"
cmd = "ffmpeg -i #{src} -vcodec libx264 -crf 20 -pix_fmt yuv420p -r 30 -an #{dst}"
puts "exec : #{cmd}"
system(cmd)
end