How to turn a video into a GIF without uploading it
Every "free" online video-to-GIF converter you've used uploads your clip to a company server, converts it there, and — in several documented cases — keeps a copy or a live download link for days. For personal clips, family videos, and anything private, that's an unnecessary risk. The safer approach is to convert the file where it already is: on your own device.
This tool does exactly that. When you drop a video here, your browser:
- Loads a real video encoder (ffmpeg, compiled to WebAssembly) — but only when you convert your first file, so the page itself stays light.
- Reads the clip's duration and resolution and trims it to the moment you chose, one file at a time, so the page never freezes.
- Builds a 256-colour palette from your clip (the palettegen pass), then re-encodes every frame against that palette (the paletteuse pass) — the standard two-pass pipeline, which is why the colours look far better than a single-pass GIF.
- Hands you an animated GIF as a download. Your original file is never modified, and GIFs carry no audio — the sound track is dropped by design.
- Target size (optional): choose a target and the tool encodes, measures, and steps the settings down — lower frame rate, then smaller width, then fewer colours — until the GIF fits, then reports the target, the size actually achieved, and how many passes it took.
Why is my GIF bigger than the video?
A video codec compresses across frames: it stores one full picture, then only what changes. A GIF stores every frame as its own picture, and each frame can use only 256 colours. A 10-second clip at 15 fps becomes 150 separate pictures — so the GIF is often larger than the compressed video it came from. That is the format, not a bug. The levers that shrink a GIF most are, in order: a shorter clip, fewer frames per second, and a smaller width.
Making a GIF that fits Discord
Discord's free upload limit is 8 MB, and a GIF that is even 1 byte over will not send. Pick the Discord 8 MB preset and keep the clip short: a 5-second reaction at 480 px and 15 fps usually fits comfortably; a 30-second clip at 640 px almost never does. If the tool reports "best effort", the smallest file it could make is still over 8 MB — trim the clip shorter or accept a lower frame rate rather than re-uploading the same file and hoping.
Honest limitations
GIFs are larger than videos
A GIF stores every frame separately, so it is usually bigger than the source video. The before/after panel shows this honestly: a bigger output file is the price of a format every chat app and forum understands, not a bug.
Only 256 colours per frame
GIFs cannot show more than 256 colours in one frame. Smooth gradients and skin tones can look banded or speckled — that is the format's limit, and dithering only softens it.
No sound in a GIF
GIFs cannot carry audio. The sound track is dropped on every conversion. If you need sound, keep the video — or use the video compressor instead.
Target size is best effort
The tool steps settings down (frame rate, then width, then palette colours) to fit your target, but a GIF can only shrink so far: if even 320 px at 5 fps with 128 colours is bigger than the target, the card says so plainly (“best effort: closest achievable was …”) instead of claiming success.
Short clips only
60 seconds maximum, and 10 seconds or less works best. Browser encoding is single-threaded and holds the whole clip in memory; a 60-second 1080p clip is slow and can exhaust a tab. Long videos belong in a desktop encoder.
AVI needs converting first
AVI files are refused with a clear message — the browser encoder cannot decode them. Convert AVI to MP4 first (HandBrake is free) and try again.