Convert WebM to GIF

Converting WebM to GIF gives you a silent looping animation you can paste where video is not accepted — at a real cost, because a GIF stores every frame in full at 256 colours and is routinely ten times larger than the WebM it came from. The defaults trim to ten seconds at 480 pixels and twelve frames a second for exactly that reason, and it all happens in your browser.

  • Where it runs In your browser. The file is never uploaded.
  • Lossy Some detail is traded for size. GIF cannot hold everything a WebM can.
  • File size limit Up to 100 MB per file, free, without an account.
  • Worth knowing A GIF stores every frame in full with at most 256 colours and no motion compensation, so it is many times larger than the video it came from. The defaults trim the clip to ten seconds at 480 pixels and twelve frames a second for that reason. Sound is lost — GIF has no audio.

Up to 100 files at once. Mixed formats are fine.

You are holding the better web format already

This is the awkward truth about this particular pair, and it deserves to come first. For anything that will be shown in a browser, the WebM you have beats the GIF you are about to make on every axis: a tenth of the size or less, millions of colours instead of 256, whatever frame rate it was recorded at, and hardware-accelerated playback that does not spin a phone’s CPU. A `<video autoplay muted loop playsinline>` element gives you an autoplaying silent loop that behaves exactly like a GIF and is not one.

Every large platform already knows this. Twitter, Reddit, Slack and Discord all convert uploaded GIFs to video behind the scenes, because they are the ones paying for the bandwidth. So if the destination is a web page you control, stop here — you already have the file you want. This conversion is for the destinations that have not caught up.

The destinations that genuinely still need a GIF

They are real and there are more of them than you would expect. Bug trackers and issue threads that render images and not video. Wikis and internal knowledge bases with an image-only uploader. Email signatures and newsletters, where video does not play in most clients and an animated GIF does. Older forums. Documentation generators that accept a picture and nothing else. Chat platforms that treat GIF as a first-class type with its own picker.

If your destination is on that list, this is the right conversion and the rest of this page is about making the file small enough to be accepted. If it is not, the WebM is the answer and it costs you nothing because you already have it.

Why the GIF is bigger than the video it came from

GIF has no motion compensation. Modern video codecs describe one frame completely and then, for every frame after it, only what changed — which is why a ten-minute screen recording of a mostly-static interface can be a few megabytes. GIF stores each frame as a whole picture, one after another, all the way to the end.

The consequence catches people out constantly. Ten seconds of ordinary footage as a GIF is comfortably larger than the entire WebM it came from, often by a factor of ten or twenty. No setting fixes this and no converter avoids it; the format was finished in 1989 and has not changed since. What can be done is to give it less to store, which is what the three controls under the result are for.

What the defaults are and why they were chosen

Twelve frames a second, 480 pixels wide, ten seconds long. Twelve is the low end of what still reads as motion and is roughly what hand-made GIFs have used since the format was popular; it gives an 83-millisecond delay between frames. 480 pixels is a width that fits a chat window, an issue thread or a documentation page, which is where GIFs actually go. Ten seconds is where the size curve turns unpleasant.

Each control multiplies the file almost directly, and they multiply against each other. Frame rate is linear: doubling to 24 roughly doubles the bytes, because it doubles the number of complete images. Width is quadratic, because area scales with the square of the edge — halving the width quarters the file. A two-second clip at 800 pixels and 30 frames a second can easily be larger than a ten-second one at the defaults.

The 600-frame ceiling, and the length you asked for

There is a hard limit of 600 frames, beyond which a browser runs out of memory before the encoder finishes. The length control goes up to sixty seconds and the frame-rate control up to thirty, and the two together can ask for far more frames than that.

When they do, the clip is truncated rather than the conversion failing. At the default twelve frames a second, 600 frames is 50 seconds — so a sixty-second request quietly gives you fifty. At thirty frames a second it is twenty seconds. Neither is a common ask, because a fifty-second GIF at a readable width is tens of megabytes and will be rejected by whatever you are pasting it into, but it is better to know the ceiling exists than to discover it in a result.

It always starts at the beginning of the WebM

The frames are sampled from the first frame forward, at evenly spaced timestamps, for the length you set. There is no start offset. If the moment worth showing is ninety seconds into a screen recording, this conversion cannot reach it.

The way round it is to trim first — in whatever recorded the clip, in a video editor, or by exporting a shorter capture in the first place. It is worth planning around, because the usual instinct with a long recording is to convert it and then look, and here that produces ten seconds of somebody opening a browser.

Two hundred and fifty-six colours, chosen per frame, undithered

A GIF frame can contain at most 256 distinct colours; a frame of video routinely contains tens of thousands. Something has to decide which survive, and here that decision is made separately for every single frame rather than once for the clip. A shared palette is faster and smaller and falls apart the moment the scene changes — a cut from a bright room to a dark one leaves the second half rendered in the first half’s colours.

No dithering is applied. Dithering hides banding by scattering pixels between two available colours, and it makes GIFs noticeably larger because the noise it adds is exactly what the format’s compression cannot handle. The trade here is flat, clean areas with visible steps in gradients rather than a fuzzy approximation of a smooth one. On a screen recording of an interface it is close to invisible, which is the case this conversion is actually good at. On a sunset it is obvious.

Screen captures are the case GIF still wins

Almost every WebM that arrives at this page is a screen recording, and screen content is the one kind of picture GIF handles honestly. Interface panels are flat colour. Text is two colours. Large parts of the frame do not change between one moment and the next, which is the only kind of redundancy the format’s compression can exploit.

A ten-second capture of a menu being opened and a setting being changed converts to a GIF that looks essentially identical to the video and is small enough to attach to an issue. That is the shape this conversion is for, and it is why the defaults are tuned around it rather than around camera footage.

There is no sound, and there was probably some

GIF has no audio track and nowhere to put one. If the WebM has narration — and a screen recording usually does — the GIF is silent and there is no setting that changes it.

That is often the moment to reconsider the destination. If the words matter, a GIF is the wrong artefact entirely: keep the WebM, or convert it to MP4 for somewhere that plays video, or pull the narration out as an MP3 and write the steps down beside a still. A silent loop of somebody talking is a worse explanation than either.

Frames, palettes and encoding all happen in the tab

Your browser already decodes WebM — it is the format browsers were given the codecs for first. This page uses that decoder, samples the timestamps it wants, reduces each frame to a palette and writes the GIF, entirely on your machine. Nothing is uploaded and there is no account.

That is worth stating here more than almost anywhere else on the site. GIF making is one of the most upload-hungry corners of the internet, and the files being uploaded are screen recordings — which is to say inboxes, dashboards, customer names and internal tooling. You can check which kind of site you are on in ten seconds: open developer tools, watch the network tab, convert something and see whether anything carrying your recording leaves.

How to turn a WebM clip into an animated GIF

  1. Drop your WebM onto this page, or click to choose one.
  2. The frames are decoded, reduced to a 256-colour palette and written as a GIF, in your browser.
  3. Download it, or change the length, width and frame rate under the result and convert again.

WebM and GIF: modern compression against none at all

WebM compared with GIF
WebMGIF
Full nameWebM VideoGraphics Interchange Format
File extension.webm.gif
Media typevideo/webmimage/gif
CompressionLossy — file size is bought with qualityLossless — nothing is discarded
First published20101987
Published byGoogleCompuServe
SpecificationGIF89a
LicensingOpen standardOpen standard
Standing todayCurrentLegacy, still read everywhere
Bit depth8
Colour it can describeindexed palette
Largest image65,535 px per side
Opens in a browserEvery browserEvery browser
Considered insteadMP4, MKVWebP, MP4

What is lost

GIF has no alpha channel. A transparent WebM comes out with those areas filled in — white unless something else is set — and no setting in GIF brings the transparency back.

GIF stores at most 256 colours per frame. A photograph converted into one is reduced to a palette, which is what makes the sky look stepped rather than smooth — it is the format, not a quality setting.

Opening the result

The usual programs do not overlap: WebM opens in VLC and FFmpeg, GIF in GIMP, Adobe Photoshop and ImageMagick — so whoever receives the result needs something from the second list.

What each format is for

GIF comes from CompuServe and dates from 1987, specified as GIF89a. GIMP, Adobe Photoshop and ImageMagick all read it.

GIF was published in 1987 and WebM in 2010. The older one is generally the safer file to hand to somebody; the newer one usually does the job in fewer bytes.

WebM to GIF: size, colours and the settings that matter

Why is the GIF larger than the WebM it came from?

Because GIF stores every frame as a complete picture. Video codecs store one frame and then only what changed, which is why a screen recording of a mostly-static interface is tiny. GIF has no motion compensation at all — the format was finished in 1989 — so ten seconds is ten seconds’ worth of whole images, routinely ten to twenty times the size of the WebM. That is the format, not the converter.

Can I start the GIF part-way through the clip?

Not here. Sampling always begins at the first frame and runs forward for the length you choose, so a GIF of the interesting middle of a recording has to be trimmed in something else first. This is a real limitation and worth knowing before you convert a five-minute capture expecting to get the good bit.

What do the length, width and frame rate settings actually cost?

Frame rate is linear — going from 12 to 24 frames a second roughly doubles the file, because it doubles the number of complete images. Width is quadratic: halving it quarters the size, because area scales with the square of the edge. Length is linear too. The defaults of ten seconds, 480 pixels and 12 frames a second are picked to produce something you can actually paste.

I asked for 60 seconds and got less. Why?

There is a hard ceiling of 600 frames, beyond which a browser runs out of memory before the encoder finishes. At the default 12 frames a second that works out at 50 seconds; at 30 frames a second it is 20. The clip is truncated rather than the conversion failing, so check the result if you asked for a long one.

Why does the GIF look banded compared to the video?

Because every frame is reduced to at most 256 colours, and no dithering is applied. On a screen recording — flat panels, solid text, few colours — this is close to invisible and is why software demos are the one thing GIF still does well. On camera footage, skies, skin tones and gradients break into visible steps. Each frame gets its own palette, which is the best available answer, but 256 is the format’s ceiling.

Is my recording uploaded?

No. The WebM is decoded, every frame quantised to a palette and the GIF written inside your browser. This is unusual for this conversion specifically — GIF making is one of the most upload-hungry corners of the internet, because running FFmpeg on a server is easier than doing it properly in a tab. Screen recordings are also the files most likely to have someone’s inbox in them.

More about these formats

Where these figures come from

The claims this page makes about WebM and GIF are checkable, and these are the documents that settle them.