Convert a video to an animated GIF in your browser
This tool turns a section of a video into an animated GIF — entirely on your device. You pick the clip, the part to animate, the frame rate, and the size, and it samples the frames and encodes the GIF locally. The video is never uploaded; only the small GIF encoder is fetched once from a CDN.
How it works
The selected video is loaded into a local <video> element. The tool seeks to evenly spaced timestamps across your chosen range, draws each frame onto a canvas at the output size, then quantizes every frame to 256 colors and encodes them into a single looping GIF. Because the decode, capture, and encode all happen in the browser, even large or private clips stay on your machine.
Steps
- Drop a video file (MP4, WebM, MOV…) or click to choose one.
- Drag the Start and End sliders to the part you want to animate.
- Set the Frame rate — 8–12 fps suits most clips; raise it for smoother motion.
- Choose a Width preset (240p / 320p / 480p / Original) to control size and sharpness.
- Toggle Loop on or off, then click Create GIF and Download GIF.
Settings and when to change them
| Setting | Lower / smaller | Higher / larger | Pick when |
|---|---|---|---|
| Frame rate | Smaller file, choppier | Smoother, bigger file | 8–12 fps for UI/screen demos; 15–24 for motion |
| Width | Smaller file, less detail | Sharper, bigger file | 240–320px for chat/embeds; Original for quality |
| Range | Fewer frames, smaller | More frames, bigger | Keep it short — every second adds frames |
| Loop | Plays once | Repeats forever | On for reactions/demos; off for one-shot clips |
Tips for a small GIF
- Trim tightly. A 2–3 second loop is far smaller than a 10 second one.
- 10 fps is usually indistinguishable from 24 fps for screen recordings.
- 320px wide is plenty for Slack, GitHub, and most embeds.
- Watch the Est. file number — it updates live as you change settings.
Example
A 4-second screen recording at 1080p becomes a shareable loop: set the range to the 4 seconds, frame rate to 12 fps, width to 480p, and Loop on. The result is a smooth, small GIF ready to drop into a chat or pull request — and your recording never left the browser.
