/gifgen

Simple high quality GIF encoding

Primary LanguageShellMIT LicenseMIT

gifgen

Simple high quality GIF encoding

GitHub Donate Bitcoin Donate Lightning Donate

If you've ever tried encoding GIFs with ffmpeg there's a good chance your results came out looking pretty bad. This is because GIFs are limited to a palette of 256 colours and ffmpeg just uses a generic palette to be able to cover a wide range of colours.

gifgen produces much better results by doing a 2-pass encode. The first pass generates a custom colour palette based on all of the pixels from each frame. The second pass encodes the GIF using this palette instead of the default one bundled with ffmpeg.

ffmpeg default:

ffmpeg default

gifgen:

gifgen

Usage

$ gifgen -h
gifgen 1.2.0

Usage: gifgen [options] [input]

Options:
  -o   Output file [input.gif]
  -f   Frames per second [10]
  -s   Optimize for static background
  -v   Display verbose output from ffmpeg
  -w   Scale output with horizontal resolution
  -b   Begin the clip at a given timestamp (in seconds)
  -d   Duration in seconds of the resulting gif, can be combined with at

Examples:
  $ gifgen video.mp4
  $ gifgen -o demo.gif SCM_1457.mp4
  $ gifgen -sf 15 screencap.mov
  $ gifgen -sf 15 -w 320 screencap.mov

Begin at 3.5 seconds into the video, make the gif using the next 5.5 seconds
  $ gifgen -b 3.5 -d 5.5 screencap.mov

Installation

macOS

brew install lukechilds/tap/gifgen

Linux

Just clone this repo and either copy/symlink gifgen to your PATH or run the script directly with ./gifgen. Requires ffmpeg to be installed.

Windows

¯\_(ツ)_/¯

Credits

gifgen is pretty much just the information from this blog article wrapped up in a shell script. Full credit goes to the original author.

License

MIT © Luke Childs