Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
ffmpeg time-lapse

Convert sequence of JPEG images to MP4 video

ffmpeg -r 24 -pattern_type glob -i '*.JPG' -i DSC_%04d.JPG -s hd1080 -vcodec libx264 timelapse.mp4

  • -r 24 - output frame rate
  • -pattern_type glob -i '*.JPG' - all JPG files in the current directory
  • -i DSC_%04d.JPG - e.g. DSC_0397.JPG
  • -s hd1080 - 1920x1080 resolution

Slower, better quality

Add the following after -vcodec libx264 to achieve better quality output

-crf 18 -preset slow

Bulk convert JPGs to 1920x1080, centered

convert input.jpg -resize '1920x1080^' -gravity center -crop '1920x1080+0+0' output.jpg


This comment has been minimized.

Copy link

commented Apr 28, 2019

Thanks but why there are two -is? Also, when I run your command I get an error:

Could find no file with path 'IMG_%04d.jpg' and index in the range 0-4
IMG_%04d.jpg: No such file or directory

Of course, my file names are like IMG_1234.jpg and that's why I've changed the pattern. When I remove the second -i which causes issues, the process goes through but the result is a messed up video with flat colors in it. I'm not sure if this is relevant, but I'm getting this warning too:

deprecated pixel format used, make sure you did set range correctly

Any help is appreciated, thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.