When an MP4 is better than a GIF
GIF is from 1987. It stores every frame as an indexed picture of at most 256 colours and has no idea of motion, so a few seconds of footage can run to megabytes. An H.264 MP4 stores the change from one frame to the next and can use millions of colours. That is why many sites quietly turn uploaded GIFs into videos, and why some places, such as Instagram posts, presentation software and many upload forms, take MP4 but not GIF.
Converting is not always a win, though, and the usual promise that an MP4 is “5 to 10 times smaller” depends entirely on what the GIF shows. This tool prints the real figure for your file, and tells you plainly when the MP4 comes out bigger.
What we measured
We converted test GIFs in Chrome on a Windows PC on 11 October 2026 and read every MP4 back with a separate decoder (FFmpeg, through PyAV), frame by frame, against the GIF drawn on a white background:
| GIF | GIF size | MP4 size | Smaller by |
|---|---|---|---|
| Video clip, 400 × 300, 40 frames, dithered | 2.21 MB | 69 KB | 32 × |
| Photo animation, 400 × 300, 30 frames | 102 KB | 12 KB | 8.3 × |
| App interface recording, 480 × 270, 40 frames | 74 KB | 23 KB | 3.3 × |
| Flat-colour screen recording, 480 × 270, 60 frames | 14.3 KB | 13.8 KB | 3% (about the same) |
| Emoji with a transparent background, 128 × 128, 24 frames | 10.5 KB | 7.0 KB | 1.5 × |
| Small animation, 120 × 120, 70 frames | 14.2 KB | 16.2 KB | 14% bigger |
The pattern is simple. The more a GIF looks like real footage, with gradients, noise and photos, the more an MP4 saves, because GIF is at its worst there. Flat colours, small sizes and many tiny frames are what GIF does well, and the MP4 saves little or nothing. Each conversion took well under two seconds, the largest one included.
Frame timing: the speed you see in the browser
Every GIF frame carries its own delay, in hundredths of a second. Some GIFs set it to 0 or 0.01 seconds, and browsers do not play those as written: Chrome, Firefox and Safari show such frames for 0.1 seconds. The browser's image decoder still reports the stored value, so a converter that copies it makes a video that runs faster than the GIF ever did on screen. Our test GIF mixed delays of 0, 0.01, 0.02, 0.05, 0.1 and 2 seconds; the MP4's frames start at exactly the times the browser shows them, and the result says how many frames were adjusted. Long pauses, like the 2-second hold in that GIF, are kept as they are.
Transparency, size and looping
- Transparency. H.264 MP4 cannot be transparent. The tool checks the GIF and, if it finds transparent pixels, asks for a background: white, black or any colour, ideally the colour of the page or chat where the video will play.
- Odd sizes. H.264 needs an even width and height. A GIF of 301 × 201 gets a one-pixel strip of the background colour on the right and bottom instead of being stretched, so pixel art stays sharp.
- Looping. A GIF can say “loop forever”; an MP4 cannot, and whether it loops is up to the player. If a platform needs a longer clip, choose 2, 3 or 5 plays and the animation is written into the video that many times.
For Instagram: 30 fps and at least 3 seconds
Instagram's publishing rules for Reels and Stories, in Meta's developer documentation, ask for an H.264 (or HEVC) MP4 or MOV at 23 to 60 frames per second, at least 3 seconds long, with no edit lists and the index at the front of the file. GIFs rarely meet the first two: our eight test GIFs ran at 3 to 20 frames per second, and five of them were shorter than 3 seconds. Choose Constant 30 fps and Enough for 3 seconds: every GIF frame is held for as long as it shows, on a steady 30 fps grid, and the animation is repeated until the video passes 3 seconds. The repeated frames cost little; our 60-frame screen recording GIF went from 13.8 KB to 16.4 KB at 30 fps. The MP4s this tool writes have no edit list and the index first, and the result card says whether the video meets those rules. Our guide on how to post a GIF on Instagram covers feed posts, Stories, Reels and comments.
Where an MP4 loses detail
H.264 stores colour at half the resolution of brightness, as almost every video does. On footage you cannot tell. On a small GIF with sharp coloured edges, such as an emoji or text on a coloured box, the colours bleed by about a pixel: our emoji and text tests measured 28 to 30 dB against the GIF, where the interface recording reached 46 dB. The dithered video clip measured 28 dB for a different reason: the MP4 smooths out the GIF's dither noise, which is a change but not a loss you would notice. If your GIF is small, sharp-edged and transparent, the GIF itself is often the better file. To make it smaller instead, try Compress GIF.
Related tools
- Going the other way: Video to GIF makes a GIF from a clip and can aim at a size limit.
- A still picture from a GIF: GIF to PNG or GIF to JPG.
- A whole set of images as an animation: Images to GIF.
Everything on this page runs in your browser, using its own image decoder and video encoder. The GIF is never uploaded.