Video to GIF Converter

mp4 → gif

Turn a clip from an MP4, MOV or WebM into an animated GIF. Your browser reads the frames and writes the file in this tab, so the video is not uploaded.

Settings

Minutes and seconds, such as 1:30. Leave 0:00 for the beginning.

Longer, wider and faster all make the file bigger.

QueueNothing is uploaded

Drop a video here to turn it into a GIF

or click to browse files from your device

Converting files...

About this video to GIF converter

The page loads your video the way a player does, seeks to one position after another and draws each one onto a canvas. That is why the format question comes down to whether your browser can play the file: in practice MP4, MOV and WebM all work. There is no demuxing and no WebCodecs here, and a file the browser cannot play gets a plain message saying so.

Every frame that comes back is reduced to its own palette of at most 256 colours by median cut, compressed with LZW and written into a GIF89a. The file carries a NETSCAPE2.0 block set to loop forever, and each frame's delay is 1000 divided by the frame rate you picked. Giving every frame its own palette is what keeps a scene change from banding the whole clip.

How to use it

01

Add a video

Drop an MP4, MOV or WebM on the box above, or click to pick one. One video at a time, up to 100 MB.

02

Set width, frame rate and length

Choose 320, 480 or 640 pixels wide, 5, 10 or 15 frames a second, where to start, and 3, 5 or 10 seconds from there. The panel shows an estimated size as you change them.

03

Make the GIF

Click Make GIF. The progress bar counts through the frames, then the file is assembled.

04

Download

The finished GIF appears with its real size and a Download button. Nothing is saved until you click it.

What it does

  • Your browser reads the frames and writes the GIF. The video is not uploaded, and no library is downloaded to do it.
  • Takes any file your browser can play, which in practice means MP4, MOV and WebM.
  • Gives every frame its own palette of up to 256 colours, chosen by median cut, so a scene change does not band the rest of the clip.
  • Writes a GIF89a with a NETSCAPE2.0 block, so the animation loops forever.
  • Estimates the size before you convert, from the width, frame rate and length you picked.

Specifications

Specification Details
Input One video at a time, up to 100 MB, in any format your browser can play, which in practice means MP4, MOV and WebM
Output An animated GIF89a that loops forever, written by this page
Width 320, 480 or 640 pixels, 480 by default. A video narrower than your choice is not enlarged.
Frame rate 5, 10 or 15 frames a second, 10 by default. Each frame's delay is 1000 divided by that, and viewers treat anything under about 20 ms as 100 ms.
Length 3, 5 or 10 seconds, 10 by default, taken from the start time you set
Colours and compression Up to 256 per frame, chosen by median cut, LZW compressed, with no dithering
Libraries None. The frame walk and the GIF writer are both in the page.
Where your video goes Nowhere. It stays in this tab's memory.
Good to know

What this converter does not do

It walks a few seconds of one video and writes them as the frames of a GIF. A few jobs sit outside that.

No sound

GIF carries no audio track, so the sound is dropped. To keep it, MP4 to MP3 pulls the track out as an MP3.

Ten seconds at most

A GIF stores every frame in full, so a longer stretch runs to tens of megabytes. Pick a start time and take up to ten seconds from there.

Usually larger than the video

GIF has almost no compression between frames, so a few seconds can turn into a file several times the size of the whole clip. To stay small and still move, Video compressor leaves it as a video.

No dithering

Each frame's palette is applied straight, without scattering pixels to imitate the missing colours, so banding stays visible rather than being traded for noise.

Only what the browser plays

There is no demuxer here. The page seeks through the video the way a player does, so a codec your browser refuses produces a message instead of a GIF.

Related video tools

Frequently asked questions

No. The page plays the file in this tab, draws the frames on a canvas and writes the GIF here as well. No library is downloaded for it either.

Whatever your browser can play, which in practice means MP4, MOV and WebM. The page has no demuxer of its own, so a file the browser refuses gets a message rather than a GIF.

GIF has almost no compression between frames, so each one is stored nearly on its own, while a video codec mostly describes the difference from the frame before. A narrower width, a lower frame rate and a shorter length each bring the size down.

Yes. Put the moment in the Start at box as minutes and seconds, such as 1:30, and the GIF begins there. A start past the end of the video falls back to the last seconds.

Yes. The file carries a NETSCAPE2.0 block set to loop forever, which is the block every viewer reads for the loop count.

The estimate is a rough figure from the width, frame rate and length. Once a video is in the queue its real length and shape are used, and the size that counts is the one on the result card.

Your video stays on your device

The page reads the frames in this tab and builds the GIF here too. The video is not uploaded, no request carries it anywhere, and nothing is saved to your device until you click Download.