Skip to content
Toolcroft

GIF Maker - Convert Video to GIF

Image Tools

Turn a video into a GIF in your browser. Trim clips, choose frame rate, width, and palette size, then download without uploading your video.

100% private. Your video is decoded and the GIF is encoded entirely in your browser (a background Web Worker does the encoding) - nothing is uploaded to any server.

Drop a video here or browse

MP4 · WebM · MOV, up to 500 MB

How to use this tool

  1. Choose a video. Drop an MP4, WebM, or MOV file onto the drop zone, or click to browse for one.
  2. Trim and set options. Drag the start/end sliders to pick the range, then choose a frame rate, output width, palette size, and whether the GIF should loop.
  3. Generate. Click "Generate GIF" to sample frames and encode them. A progress bar shows extraction and encoding progress; click Cancel at any time to stop.
  4. Download. Preview the finished GIF and click "Download GIF" to save it to your device.

How the video-to-GIF pipeline works

Converting a video clip into a GIF takes three steps, and this tool runs all three locally in your browser tab. First, your video file is loaded into a hidden <video> element and repeatedly seeked to evenly spaced timestamps across your chosen trim range - one seek per output frame, at the frame rate you pick (5, 10, 15, or 20 frames per second). Second, each decoded frame is drawn onto an HTML5 canvas at your chosen preset or custom output width (up to 1280px; smaller sources are not enlarged; height is scaled to preserve the video's aspect ratio) and read back as raw pixel data. Third, a background Web Worker quantizes each frame's millions of possible colors down to your selected maximum of 64, 128, or 256 colors, indexes the pixels against that per-frame palette, and writes the compressed frame into the growing GIF file - all off the browser's main thread, so the page stays responsive while a clip encodes. Lower palette settings can reduce file size but can also make color banding more visible; 256 remains the default.

This seek-and-sample approach trades a little precision (very fast motion between sampled frames is skipped rather than motion-blurred) for broad browser compatibility - it works anywhere the browser can play the source video, without needing newer APIs like WebCodecs that aren't available everywhere yet. For typical use cases like turning a short screen recording or phone clip into a shareable GIF, the difference is rarely noticeable at 10-20 frames per second.

GIF vs. video: when a GIF actually makes sense

GIF predates modern video codecs by decades, so it's far less efficient byte-for-byte than MP4 or WebM - a GIF of the same clip is often 5-10x larger than an equivalent short video. What GIF still has going for it is universal, autoplay-without-controls support: GIFs play inline in chat apps, forums, README files, and social posts without a play button, a video player, or a file format the recipient's app might not support. That makes GIF the right choice for short reaction clips, UI demos, and looping animations under a few seconds - and the wrong choice for anything where you actually care about video quality or file size, where MP4/WebM (see this site's Image Format Converter family of tools) remains the better format.

Keeping your GIF file size down

Setting Effect on file size
Lower frame rate (5-10 fps instead of 15-20) Fewer frames to encode - often the single biggest size reduction
Smaller preset or custom width (320px instead of 640px) Fewer pixels per frame, roughly proportional to width x height
Shorter trim range Directly reduces total frame count
Fewer palette colors (64 or 128 instead of 256) Can reduce palette data, with more visible color banding as the trade-off
"Plays once" instead of looping No effect on file size - only changes playback behavior

As a rule of thumb, keep GIFs short (a few seconds) and modest in resolution (320-480px wide) unless you specifically need a larger, longer animation - both file size and encoding time grow roughly linearly with frame count and quadratically with linear dimensions.

Privacy

Video files can contain personal or sensitive footage - screen recordings with visible account details, clips of your home, or unreleased work. Most online GIF makers require uploading the full video file to a server before you get anything back. This tool never does that: decoding, frame sampling, color quantization, and GIF encoding all happen inside your browser tab, and the finished GIF is generated as a local Blob you download directly - open your browser's network tab while converting and you'll see no requests carrying your video data.

Frequently asked questions

Is my video uploaded to a server?

No. The video is decoded by your browser and every frame is sampled onto a canvas, then quantized and encoded into a GIF by a Web Worker running locally. Nothing is uploaded, logged, or stored - the whole pipeline runs on your device.

Why is there a 900-frame limit?

Each frame has to be color-quantized and encoded, and very long clips at high frame rates would take a long time and use a lot of memory in the browser tab. The limit covers a 45-second clip at 20 fps, a 90-second clip at 10 fps, or a 3-minute clip at 5 fps. Trim to a shorter range or lower the frame rate if you hit the limit.

Why does my GIF look less colorful than the source video?

GIF supports up to 256 colors per frame, while video can show millions. Choose 64, 128, or 256 colors; 256 is the default. Each frame is quantized separately to the selected maximum, so fewer colors can reduce file size but may show more banding on smooth gradients or colorful scenes. This control does not add dithering or a two-pass shared palette.

What video formats can I use?

MP4 (H.264) and WebM are supported in every modern browser. MOV files exported from an iPhone also work in most cases, though QuickTime-specific codecs are best supported in Safari. If a file fails to load, try re-exporting it as MP4.

Why is my downloaded GIF file so large?

GIF is an old, relatively inefficient format compared to video - every frame is a mostly-independent color-indexed image. To shrink the file, lower the frame rate, reduce the preset or custom output width, choose fewer colors, or trim to a shorter clip. These changes trade smoothness, detail, or color range for a smaller result.

Browse all image tools