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.
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.