Converter · No upload

Make a GIF from a video — MP4 to GIF, MOV or WebM, without uploading the video

Drop in your own video files — screen recordings, phone clips, camera footage — pick the seconds you want, and download a GIF. Despite the name, this is a general video to GIF converter: MP4, MOV and WebM all decode reliably in every current browser, because it is your browser doing the decoding. Everything runs inside your browser: the video never travels anywhere, and the network meter below proves it live.

Statusidle Files File Source size Duration Frame rate10 fps GIF width480 px Frames Output size Network since file read

How this converter works

When you choose a video from your device, the browser's File API hands this page the bytes in memory — no transfer happens, because the file is already on your machine. Your browser's own media engine then does the decoding: the same machinery that plays video on any web page steps through your clip, and this page snapshots frames onto a canvas at the frame rate and width you chose. Those frames are encoded into a GIF by gif.js (MIT) — open-source code built around the NeuQuant color quantizer, served from this site and running in a background worker inside this tab. The result is handed back as a download link; nothing leaves your device. The decoding is your browser's own, so this page downloads no video decoder, and it has no URL box — it reads the local files you pick, and that is all. The methodology page publishes the encoder's license and provenance and shows how to verify the zero for yourself.

Honesty about the format: GIF is a huge, lossy way to store motion. It is a 1987 image format doing a video's job — every frame is stored whole, reduced to at most 256 colors, then LZW-compressed, while modern video codecs store mostly the differences between frames. That is why a ten-second GIF can outweigh the video it came from, and why the color reduction is a real loss you can sometimes see in gradients (the dithering toggle trades that banding for grain). GIFs earn their size where video is awkward — a two-second reaction, a UI bug capture, a short demo that must autoplay anywhere — and waste it everywhere else. The result row shows input and output sizes side by side, so the trade is never hidden.

The honest limits: what your browser can't decode, this page can't read — MP4, MOV, and WebM are dependable everywhere, while MKV and AVI vary by browser and system codecs, and a file with no readable video track gets an error row naming it rather than a silent skip. Output is capped at 300 frames — 30 seconds at the default 10 fps — because an uncapped GIF from a long video would freeze the tab and produce a file nobody wants; use the clip start and end to pick the seconds that matter, and the cap is reported on the result row whenever it applies. Sampling and encoding long or wide clips takes real time and memory on your device; the readout shows progress frame by frame as it runs.

Frequently asked questions

Is my video uploaded anywhere?
No. The browser reads the file from your disk, its own video engine decodes the frames in this tab, and the GIF is encoded locally by open-source code served from this site. The readout's network meter counts every request from the moment your file is read and stays at zero, and the methodology page shows how to verify that independently — including the airplane-mode test, which a converter that secretly uploaded could never pass.
Why is my GIF bigger than the video I made it from?
Because GIF is a 1987 image format doing a video's job. Modern video codecs store mostly the differences between frames; a GIF stores every frame whole, reduced to at most 256 colors. That trade is why a ten-second GIF can easily outweigh the source clip — and why the format only makes sense for short moments. There is no setting, here or anywhere, that makes a long GIF small; the honest levers are a shorter clip, a smaller width, and a lower frame rate.
How do I keep the file size reasonable?
Shortest clip first: use the start and end fields to cut down to the seconds you actually want — it's the strongest lever by far. Then width (320 px is plenty for chat, 480 px for most pages) and frame rate (10 fps reads as smooth motion in a GIF; 5 fps halves the frames again). Dithering makes gradients look smoother but adds noise that compresses worse, so leave it off unless the output looks banded. The result row shows the exact input and output sizes, so you can compare settings honestly.
Which video files does this work with?
Whatever your browser can decode, because it's the browser doing the decoding — despite the name, this is a general video to GIF converter for your own local files. MP4, MOV, and WebM cover phone footage, screen recordings, and camera clips and decode reliably in every current browser; MKV and AVI depend on your system's codecs, so they may or may not work. A file whose frames can't be read gets a clear error row naming it rather than a wrong result.
Why did my file produce an error?
The common reasons: the file has no video track this browser can decode, it's DRM-protected, it's damaged, or the clip range doesn't fit the file — a start time past the end of the video, or a start at or after the end. Each error row names the file and the reason, nothing is silently skipped, and the rest of your batch still converts. For codec cases, trying a different browser genuinely helps — support differs.

Related tools