Skip to content

Instantly share code, notes, and snippets.

@sgwd
Forked from billmei/timelapse.md
Created April 4, 2019 01:37
Show Gist options
  • Save sgwd/158d85f51be0366b6f5a858e5e59f5e8 to your computer and use it in GitHub Desktop.
Save sgwd/158d85f51be0366b6f5a858e5e59f5e8 to your computer and use it in GitHub Desktop.
ffmpeg time-lapse

Convert sequence of GoPro Hero 5 Black JPEG images to MKV video

MKV is an open standard, so I prefer that to MP4. It does also seem to play back 4k 60 fps less choppy.

ffmpeg -r 60 -pattern_type glob -i '*.JPG' -vf scale=3840:2160 -sws_flags lanczos -pix_fmt yuv420p -vcodec libx264 -crf 18 -preset slow timelapse_lanczos_crf18_slow.mkv

  • -r 60 - output frame rate.
  • -pattern_type glob -i '*.JPG' - all JPG files in the current directory.
  • -vf scale=3840:2160 - 4k UHD. GoPro captures in 4000x3000, but I want to squeeze it into 4k.
  • -sws_flags lanczos - I want to scale Gaussian or lanczos, I think it’s better than bicubic.
  • -pix_fmt yuv420p - Seems everyone uses this because quicktime supports only that.
  • -vcodec libx264 - everyone is using this codec - but why?
  • -crf 18 -preset slow - Add this for better quality output.

This does give you a "deprecated pixel format" warning. It would be nice to figure out how to get rid of that, but it seems to work fine.

Bulk convert JPGs to 1920x1080, centered

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment