Skip to content

Instantly share code, notes, and snippets.

@JosefJezek
Forked from gvoze32/ffmpeg GIF to MP4.MD
Created July 7, 2022 15:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JosefJezek/6d9d22a944f6eda83165bcc3d425887e to your computer and use it in GitHub Desktop.
Save JosefJezek/6d9d22a944f6eda83165bcc3d425887e to your computer and use it in GitHub Desktop.
Convert animated GIF to MP4 using ffmpeg in terminal.

To convert animation GIF to MP4 by ffmpeg, use the following command

ffmpeg -i animated.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" video.mp4

Description

movflags – This option optimizes the structure of the MP4 file so the browser can load it as quickly as possible.

pix_fmt – MP4 videos store pixels in different formats. We include this option to specify a specific format which has maximum compatibility across all browsers.

vf – MP4 videos using H.264 need to have a dimensions that are divisible by 2. This option ensures that’s the case.

Note

Add "-r 30" to specify the frame rate 30 frames/sec. So if you want 10 sec movie with frame rate 30/sec, you make GIF animation that has total 300 frames, then use it.

Features

  • Output mp4 is encoded with h264, support Firefox/Chrome/Safari in Windows, Mac OSX, Android, and iOS.
  • One mp4 file for all platforms, there is no need to encode an extra "webm" movie, which encoding speed is pretty slow.
  • Format as "yuv420p" for Firefox compatibility, the downside is color becomes less-saturate than original gif.
  • yuv420p only support even width/height, so crop filter is required
  • "-movflags +faststart" flags are optimized for online view in browser
  • Compression ratio typically 10:1, pretty awesome. note that if original gif is < 512KB, convert as mp4 is less efficient.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment