Shrink GIFs with two-pass palette optimization — fewer colors, lower fps, smaller width. 100% in-browser.
Drop a GIF, pick a preset, and shrink it with two-pass palette optimization
GIF compression runs entirely in your browser using ffmpeg.wasm. Your file is never uploaded to any server.
A GIF stores every frame as palette indices for full pixels — there is no inter-frame video compression. Size therefore scales with width × height × fps × seconds, capped by the palette: a 256-color palette spends 8 bits per pixel, while 64 colors needs only 6. This tool attacks all three levers at once in two passes: pass one builds an optimal palette (palettegen) from the downsampled, decimated frames; pass two re-maps every frame to it (paletteuse). Dropping 30 fps screen-capture footage to 15 fps alone halves the frame count; adding 320 px width and 64 colors typically cuts 80–95% off.
GIFs lack inter-frame compression, so fewer frames, fewer pixels, and fewer colors are the only real levers.
Tom captures a 6-second UI bug at 30 fps, 800 px wide, and the GIF comes out at 9.2 MB — too big for Slack's inline preview.
Compress GIFs up to 95% with two-pass palette optimization. In-browser, free.
The GIF Compressor shrinks animated GIFs with three presets that combine frame-rate decimation (10/15/20 fps), width scaling (320/480/640 px), and palette reduction (64/128/256 colors) using ffmpeg's two-pass palettegen + paletteuse pipeline. It shows the real before/after sizes and the computed saving. All local via ffmpeg.wasm.
Drop your GIF, pick a preset (Aggressive for chat, Balanced for most uses, Light when readability matters), and click Compress. Compare the two previews, then download — the savings percentage is computed from the actual file sizes.
GIF stores every frame as full pixels with palette indices — there is no inter-frame video compression. Size scales with width × height × fps × seconds, so a 6-second 30 fps 800 px capture can easily reach 9 MB.
Two passes with ffmpeg: palettegen studies the decimated frames and picks the best 64/128/256 colors, then paletteuse re-maps every frame to that palette. Before that, frames are decimated to a lower fps and scaled to a smaller width — each lever multiplies the savings.
Lower fps can make motion less smooth and fewer colors can band gradients, but text-heavy and flat-color UI captures tolerate aggressive settings extremely well. Compare the before/after previews and step up to the Light preset if readability suffers.
Why did the elephant paint its toenails red?
No paywalls, no signups, no data sold. Built by a solo developer who believes useful tools should be accessible to everyone.
☕Support me on Ko-fi— keep tools free100% of proceeds go towards hosting & building more free tools.