AnyFormat

00 Utility

Video to GIF

One page for MP4, MOV, WebM and MKV.

Drop files or a folder here

or choose from your device · paste with ⌘V / Ctrl+V

.mp4 .mov .webm .mkv .m4v .ogv .ts

03Options 7

The strongest lever on file size — halving the width quarters the pixel count. 480 suits most uses; 320 for chat, 720 only for short clips.

10–15 reads as smooth for most footage. Every extra frame is a whole extra picture in the file.

0 runs to the end, up to the 600-frame cap.

A shared palette is computed once from the first frame. Better for a fixed scene, worse when the scene changes.

Trades banding for noise. Helps on gradients and skies; makes flat graphics look grainy and larger.

  • No upload The conversion runs in this tab. Your file never travels — not to us, and not to the advertising.
  • No sign-up, no email, no daily cap There is no account system to sign up to.
  • No size limit we invented Only your device's memory — about ~2 GB on a desktop browser, ~400 MB on a phone.
  • Turn your Wi-Fi off and convert anyway The conversion needs nothing but this page. Ads will not load without a connection; your file will still convert. That is the whole claim, and it takes five seconds to check.

Makes an animated GIF from a video in any common container. The format is detected from the file rather than its extension, so a mislabelled file still works.

What can and cannot be decoded

Containers: MP4, MOV, M4V, WebM, MKV, Ogg and MPEG-TS.

Codecs: H.264, VP8, VP9 and AV1 all decode. HEVC does not — no browser decodes it outside Safari on Apple hardware — and it is what iPhones record by default. Such a file is refused with an explanation and a fix rather than a bare failure.

What GIF costs you

GIF is a format from 1987 and it shows in three specific ways.

256 colours per frame. Video is millions. Gradients, skies and skin tones band visibly, and nothing can prevent it — the palette is part of the format. Dithering trades that banding for noise, which sometimes looks better and always makes the file larger.

No real interframe compression. Modern video stores what changed between frames; GIF essentially stores each frame. That is why a ten-second clip becomes tens of megabytes while the source MP4 was two.

No audio. GIF has never had any and never will.

The upside is that a GIF plays inline everywhere without a play button — in an email, a README, a chat, a forum post. That is the entire reason the format survives, and it is a good one.

Keeping the file usable

Three levers, in order of effect.

Width. Halving it quarters the pixel count and roughly quarters the file. 480 pixels is plenty for most purposes and 320 is fine for chat.

Length. Every second at 12 fps is twelve more full pictures. Trim to the part that matters — the trim controls are on this page, so no separate editing step is needed.

Frame rate. 10–15 fps reads as smooth for most footage. Below 8 it starts to stutter; above 20 you are paying a lot for very little.

The practical limits worth knowing: Slack stops animating GIFs above about 2 MB, most forums cap around 5, GitHub allows 10, and Discord's free tier 10. A conversion above 15 MB is flagged in the notes.

Other names for this

Also searched as “make a gif from a video”, “video to animated gif”.

Questions

Which formats can I drop here?
MP4, MOV, WebM, MKV, M4V, Ogg and MPEG-TS. The container is detected from the file, so the extension does not have to be right.
Is there a length limit?
The conversion caps at 600 frames — 50 seconds at 12 fps — and tells you when it does. Beyond that a GIF is too large for anywhere that would accept one.
It says my video cannot be decoded.
It is almost certainly HEVC, which iPhones record by default and which no browser decodes outside Safari on Apple hardware. Re-export it as H.264, or set Settings → Camera → Formats to “Most Compatible” before recording. Extracting the audio from the same file still works, because that never touches the video track.
Is my video uploaded?
No. The decoding and the GIF encoding both happen in this tab. Video files are large, which is exactly why upload-based converters queue and cap them — none of that applies here because nothing is sent anywhere.