100% client-side — files never leave your device

Making a Good GIF From Video: Size, Frame Rate and Palettes

GIF is a format from 1987 with a 256-colour palette and no motion compression. Every frame is stored nearly whole. That single fact explains every GIF problem you have ever had.

The three levers

Width is quadratic: halving it removes three quarters of the data. Frame rate is linear: 30 fps to 15 fps halves the file. Duration is linear too, and the one people forget — a 20-second GIF is never going to be small, whatever else you do.

Settings that work

  • Chat and issue trackers: 480 px, 10–15 fps, under 6 seconds.
  • Documentation: 640–720 px, 15 fps, focused on one action.
  • Anything longer: ship a video, not a GIF.

Why palettes decide the quality

With only 256 colours available, the choice of which 256 is everything. Naive converters use a fixed web-safe palette, which is why so many GIFs look muddy and banded. Generating a palette from the actual clip — then dithering against it — is a night-and-day difference at identical file size. Our video to GIF converter does the two-pass palette approach by default.

Screen recordings compress better than footage

A UI recording has flat colour regions and little noise, which GIF's run-length encoding handles well. Real-world video — grain, gradients, moving foliage — defeats it completely. If your source is camera footage and the result must be small, that is the moment to use WebM instead.

The better alternative

Every platform that mattered for GIFs now autoplays muted video, at a fraction of the bytes and full colour depth. Use GIF where the target genuinely cannot take video — some email clients, some wikis, some chat systems — and compressed MP4 everywhere else.

More from the blog