GIF to MP4
Convert an animated GIF to video — usually a fraction of the size.
By opening this website or using its tools, you agree to our Terms and Privacy Policy.
or drag it here
An animated GIF
- Takes
- Animated and still GIFs, both GIF87a and GIF89a, including interlaced ones and those with per-frame palettes and transparency. A still GIF converts to a one-frame video, which is rarely what anyone wants — the image converters are the better route for that.
- Size
- A GIF has to be decoded whole before it can be re-encoded, because its frames are stored as differences from the ones before them, so the whole animation is held in memory as raw frames. That is fine for the sizes GIFs come in — a 640×480, 100-frame animation is about 120 MB decoded — and it is the reason a very long one can run a tab out of memory.
Your file never leaves your browser during processing
How it works
To convert an animated GIF to MP4, drop it onto this page — every frame is decoded and re-encoded as H.264 with its original timing kept, and the result is typically a small fraction of the size. Everything runs in your browser and nothing is uploaded.
A GIF stores each frame as a picture of palettised pixels, compressed the way a PNG is, with no understanding of motion. Video codecs do the opposite: they store what moved. That single difference is why the same six-second animation is 30 MB as a GIF and under a megabyte as an MP4, and why the MP4 also looks better — it is not limited to 256 colours, so gradients that band in the GIF come out smooth.
This page decodes the GIF frame by frame, composites each one the way an image viewer would — applying transparency and the disposal rules that decide whether a frame draws over the last one or clears it first — and hands the finished pictures to your browser's own video encoder. Each frame keeps its own delay, so an animation with deliberately uneven timing plays exactly as it did. The GIF decoder is written into this site rather than borrowed from the browser, because no browser exposes one to JavaScript in a way that works everywhere; that is also what lets this page work in Firefox, where the platform's own image decoding API does not exist.
Nothing is uploaded. The GIF is read from your disk, decoded in the page, and encoded by your browser, and the counter under the tool monitors network activity throughout and stays at zero bytes sent.
There are no settings, because the frames, their timing, and the size all come from the GIF and there is nothing sensible to ask. The bitrate is set generously on purpose: GIFs are usually flat colour with hard edges — text, line art, screen recordings — which is exactly the content H.264 handles worst at low bitrates, where it produces visible ringing around edges. The result is still an order of magnitude smaller than the source.
Two things do not survive the conversion, and both are worth knowing before you replace the original. An MP4 will not display where an image is expected, so it cannot be dropped into a context that only accepts pictures. And video has no transparency: anywhere the GIF was transparent comes out black. For an animation meant to sit on a coloured background, that is a real loss rather than a technicality.
FAQ
How much smaller will the MP4 be?
Usually between ten and fifty times, depending on how much movement there is. A GIF stores each frame as a fresh picture; H.264 stores the difference between frames, which is close to nothing for the parts that hold still.
Will it look worse?
Usually better. The GIF was limited to 256 colours and the MP4 is not, so gradients that banded come out smooth. The one thing that can look worse is very fine text or line art, which is why the bitrate here is set generously rather than aggressively.
Is my GIF uploaded?
No. It is decoded in the page and encoded by your browser, and the network counter under the tool stays at zero bytes sent throughout.
What happens to transparency?
It is lost — video has no transparent pixels, so anywhere the GIF was transparent comes out black. If the animation was meant to sit on a coloured background, keep the GIF.
Will the animation still loop?
That depends on where you play it rather than on the file. A GIF carries a loop instruction and a video does not; most players and web embeds loop short clips by default, and an HTML video tag does when given the loop attribute.
Does the timing stay the same?
Yes. Each frame's own delay is carried into the video, so an animation with varying frame times keeps them. Frames with a zero delay are treated as 100 milliseconds, which is what every browser and image viewer has done since the format was new.
Can it read old or unusual GIFs?
Yes — GIF87a and GIF89a, interlaced files, per-frame palettes, transparency, and all four disposal methods. The decoder was checked against files written by ffmpeg and reproduces its frames exactly.