# GIF to MP4 converter: turn a GIF into video, free and private

> Convert GIF to MP4 in your browser. Every frame keeps its timing, transparent parts get a white or black background, and the GIF can repeat to make a longer video. Nothing is uploaded.

URL: https://cutfac.com/tools/gif-to-mp4  
Last updated: 2026-10-28  
Language: [한국어](https://cutfac.com/ko/tools/gif-to-mp4)

Drop in a GIF and get an H.264 MP4 that plays in any player or editor, usually much smaller than the GIF. It's converted in your browser, so the file is never uploaded.

Runs in your browser. Nothing is uploaded.

## How to use it

1. **Add a GIF.** Drop an animated GIF. Its size, frame count and length show up.
2. **Set loops and background.** Choose how many times it plays and what shows behind transparent parts.
3. **Convert and download.** The MP4 plays on the page so you can check it, then download it.

## Why MP4 instead of GIF

A GIF stores each frame with at most 256 colours and compresses it on its own, so even a few seconds can run to megabytes. H.264 video compresses across frames, so the same clip as an MP4 is usually several times smaller and has no colour limit.

Video editors and most upload forms that ask for a video take MP4, not GIF. Converting first means the clip goes in as a video.

## Loops, timing and transparency

A GIF loops forever in a browser, but a video plays once unless the player loops it. Repeat the GIF two, three or five times inside the MP4 when you need a longer clip, for example to meet a minimum video length.

Each frame keeps its own delay. Frames saved with a delay of 10 ms or less play at 100 ms, which is what browsers do, so the MP4 runs at the speed you saw.

MP4 video has no transparency, so transparent parts are filled with the background you pick. H.264 also needs even dimensions, so a GIF with an odd width or height loses one pixel on that edge.

## With ffmpeg

The same conversion on the command line; the scale filter rounds odd sizes down to even:

- ffmpeg -i input.gif -movflags +faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4
- To play it three times: ffmpeg -stream_loop 2 -i input.gif -movflags +faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4

## Sources

- [MDN: ImageDecoder](https://developer.mozilla.org/en-US/docs/Web/API/ImageDecoder)
- [FFmpeg documentation](https://ffmpeg.org/ffmpeg.html)

## Questions

### Is my GIF uploaded?

No. It's decoded and encoded in your browser. Nothing is sent anywhere.

### Does the MP4 look worse than the GIF?

It's encoded at high quality, and a GIF is already limited to 256 colours, so it looks the same. It's usually much smaller too.

### Why is my MP4 one pixel narrower?

H.264 needs an even width and height, so an odd edge is trimmed by one pixel. Nothing else is cropped.

### Does the MP4 have sound?

No. A GIF has no sound, so the MP4 is silent.

### Which browsers work?

Chrome and Edge. The tool needs to read GIF frames and encode H.264 in the browser, and says so if yours can't.
