Converter · No upload
Turn a video clip into a GIF on your device
Choose an MP4, MOV or WebM video, pick the seconds you want and download a GIF.
A GIF sampled from the seconds you pick: up to 256 colours and never wider than the source; sound is dropped, frames use browser seek positions and HDR is reduced to 8-bit. Runs stop at 300 frames; ends past the video are clamped, with a row note. The encoder (about 31 KB) loads once before your file is read. Takes .mp4, .m4v, .mov, .webm, .mkv, .avi, .ogv and .3gp.
How this converter works
When you choose a video, the browser's File API gives this page its bytes, and the browser's own media engine decodes it. The page asks for frames at even time intervals set by the rate you chose and draws each one onto a canvas at the width you chose, capped at the source width. gif.js (MIT), built around the NeuQuant colour quantizer, encodes those frames into a GIF in a background worker in this tab, and the result is offered as a download. The encoder is served from this site, and there is no video decoder to download. The page reads only the local files you pick; it has no URL box. The methodology page records the encoder's licence and provenance and explains the network and offline checks.
GIF is an image format from 1987: each frame is reduced to at most 256 colours, a lossy step, and then compressed with LZW. This tool stores every sampled frame as a full image, while video codecs can encode the changes between frames. Reducing the palette can leave visible bands in gradients; dithering can soften them, adds grain and can change the file size. GIF suits a two-second reaction, a UI bug capture or a short demo where video is awkward, though how it plays depends on the app that receives it.
Your browser has to support the codec inside the file as well as its container, so an MP4, MOV, WebM, MKV or AVI file can succeed or fail depending on what it holds. Files without a readable video track get a named error row. Each frame is taken where the browser lands after a seek, so extraction is not accurate to the millisecond, and captured timestamps are not measured. The rate and range in the controls and the result row are the requested sampling, and any cap or clamp is shown on the row. GIF frame delays are rounded to hundredths of a second: the 15 fps setting encodes a 70 ms delay per frame. Frame counts are rounded up, so a range that does not hold a whole number of sampling intervals can produce an extra frame. Total encoded delays need not match the requested source duration, and playback also depends on the viewer. HDR input is reduced to 8-bit pixels before the palette is reduced. The cap is 300 frames, a 30-second range at the default 10 fps; use clip start and end to pick the section you need. Sampling and encoding long or wide clips takes time and memory on your device, and progress is reported frame by frame.