Why GIFs get so heavy
GIF dates from 1987 and was designed for small graphics on slow connections, not for video. It stores every frame as a separate image compressed with LZW, a lossless method that works well on flat areas of colour and poorly on anything noisy, such as camera footage, gradients or film grain. There is no motion compensation of the kind modern video codecs use, so a three-second clip at 25 frames per second is 75 nearly complete pictures packed one after another.
Each frame is also limited to 256 colours. When a GIF is made from video, the encoder often scatters dithering noise across every frame to fake the missing shades, and that noise is exactly what LZW compresses worst. Hence the familiar 15 MB reaction GIF that would be 600 KB as an MP4.
Size depends on the number of frames, the pixels per frame and the colour detail. This tool reduces all three.
What the three levels actually do
The tool runs FFmpeg compiled to WebAssembly inside your browser and rebuilds the GIF in two passes. The first pass analyses the whole animation and generates a single optimised palette for it; the second pass re-renders every frame using that palette. Frames are scaled with the Lanczos filter, which keeps edges sharper than simple resampling, and colours are mapped with ordered (Bayer) dithering, which produces a regular pattern that compresses far better than random noise.
- Light — 15 frames per second, original dimensions, up to 256 colours. Best when the GIF must stay at its current size, for example a UI demo that has to be pixel-readable.
- Medium — 12 frames per second, width and height reduced to 75%, up to 128 colours. The default, and a good balance for most GIFs on websites, in documentation and in chats.
- Heavy — 10 frames per second, half the width and height, up to 64 colours. Use it when you must fit a strict limit, such as an email attachment or an upload cap on a forum.
Halving the dimensions alone removes three quarters of the pixels, which is why Heavy can turn a 12 MB file into something under 2 MB. Animation timing is preserved: a three-second loop still lasts three seconds, it is simply drawn with fewer frames.
Choosing a level for your content
The type of animation matters more than the file size you start with.
- Screen recordings and UI walkthroughs contain large flat areas and sharp text. They survive colour reduction well but suffer from downscaling, because small text becomes unreadable. Try Light first; if it is still too big, crop the recording to the relevant area before compressing.
- Illustrations, logos and stickers with a few flat colours look almost identical at 64 colours. Heavy usually works, unless the artwork is already small.
- Clips from video or camera footage have gradients, skin tones and skies. These show banding at 64 colours, so Medium is the safer choice. If even Medium is too large, the clip is probably too long for GIF.
- Pixel art should not be scaled at all. Use Light, which keeps the original dimensions.
If you are making a GIF from a video, it is usually better to control size at creation time with Video to GIF and keep the clip short, then compress the result if needed.
When the result is not what you expect
- The file barely shrank. The source was probably already optimised, for example small, low frame rate, or already limited to few colours. A GIF that runs at 8–10 fps gains little from the frame rate step. Move up one level.
- Visible banding in gradients. That is the 128- or 64-colour palette. Step down to a lighter level.
- A grid-like texture appears. This is the ordered dither pattern. It is most visible on smooth gradients at Heavy; Light or Medium reduces it.
- Odd colours in one scene. Because one palette is shared by the whole animation, a short scene with unusual colours (a red flash in an otherwise blue clip) gets fewer palette slots.
Limits and privacy
Files up to 100 MB are accepted, and you can drop several GIFs at once. They are processed one after another with the level selected at the moment, and each result shows its size before and after. Download them individually or as a single ZIP.
Nothing is uploaded. The FFmpeg engine is downloaded once, then runs locally, so processing speed depends on your device. A 20 MB GIF typically takes from several seconds to a minute; phones are slower than laptops, and very long animations may run out of memory on older devices.