Skip to content

Instantly share code, notes, and snippets.

@rastandy
Forked from gvoze32/ffmpeg GIF to MP4.MD
Created October 26, 2022 17:09
Show Gist options
  • Save rastandy/f5e746b23a75cded6d84b7c4394ded2a to your computer and use it in GitHub Desktop.
Save rastandy/f5e746b23a75cded6d84b7c4394ded2a to your computer and use it in GitHub Desktop.

Revisions

  1. @gvoze32 gvoze32 revised this gist Nov 25, 2019. No changes.
  2. @gvoze32 gvoze32 created this gist Nov 25, 2019.
    23 changes: 23 additions & 0 deletions ffmpeg GIF to MP4.MD
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    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.