Skip to content

Files & Media

Video to GIF Converter

Turn a video clip into an optimised animated GIF.

Runs in your browser

Drop a file or click to browse

Palette-optimised GIF — small width keeps the file size sane

FFmpeg.wasm runs entirely in your browser. The first use downloads ~30 MB of engine — cached for every subsequent run.

Understanding video → GIF

The format that won't die.

Why GIF is technically the worst possible video format, how to make one that looks decent anyway, and the modern replacement that hasn't replaced it.

GIF, the technical disaster.

GIF (1987) is a still-image format with one trick: it can carry multiple frames and a delay between them. The colour palette is limited to 256 colours per frame. The compression is LZW — vintage. There's no inter-frame prediction (every frame is essentially a full picture). The result is files 10-50× larger than equivalent- looking H.264 video. Nobody would design this format today; it persists because every chat, browser, document and email client renders it without configuration.

The palette problem.

The single biggest quality dial. A naive conversion picks a generic 256-colour palette and quantises every frame to it — fine for cartoons, banding city for anything with subtle colour gradients. The fix: a two-pass conversion. First pass generates a palette specifically optimised for the actual colours in the video. Second pass quantises using that palette. FFmpeg's palettegen + paletteuse filter chain does exactly this. The visual quality jump is enormous.

Frame rate and size, the levers.

GIF file size scales linearly with frame count and roughly linearly with pixel count. A 5-second 30fps 1080p GIF would be 50-100 MB and chunky to render — most tools cap frame rate at 15-20fps and width at 480-720px. The motion looks slightly choppier, but the file becomes 5MB instead of 50, and every viewer renders it smoothly. The trade is the entire point: GIF is for short, low-resolution, low- frame-rate content where compatibility wins over fidelity.

A worked conversion.

A 5-second 1080p screen recording, target a Slack-friendly GIF. ffmpeg -i in.mp4 -vf "fps=15,scale=720:-1:flags=lanczos,palettegen" palette.png then ffmpeg -i in.mp4 -i palette.png -filter_complex "fps=15,scale=720:-1:flags=lanczos[x];[x][1:v]paletteuse" out.gif. Two-pass with custom palette, 15fps, 720px wide. Output: ~3-5 MB instead of the ~50 MB a naive conversion would produce.

Two-pass palette

palettegen → paletteuse

Custom 256-colour palette eliminates banding.

palette.png (256 colours optimised) → quantise with it

= Smaller and visually better

WebP and AVIF are better animations.

Animated WebP (2010) and AVIF (2019) both support animation, with proper inter- frame compression and millions of colours. Same content, 5-10× smaller files. The catch: not every viewer plays them. WebP is now near-universal in modern browsers but doesn't render inline in older chat apps, Word documents, or emails. AVIF is even smaller but support is younger. For the web, ship WebP; for "paste into any system", ship GIF.

MP4 is also a video.

The honest answer to "how do I make a small animated thing for the web": don't use GIF, use a silent MP4. <video autoplay loop muted playsinline> in HTML plays a 200KB H.264 video the same way a 5MB GIF plays. Twitter, Slack, and Discord auto-convert uploaded GIFs into MP4s server-side for this exact reason. If you control the embed surface, MP4-as-loop is 10× smaller than GIF. If you don't, GIF is the universal fallback.

Frequently asked questions

Quick answers.

Is my video uploaded to your servers?

No. The conversion is performed locally in your browser using WebAssembly. Your original video file stays on your device throughout the entire process.

What video formats are supported?

Most modern video formats are supported including `MP4`, `MOV`, and `WebM`. The browser must be able to decode the video codec for the preview to work.

How can I reduce the file size of the GIF?

You can reduce the output size by shortening the duration, lowering the frame rate, or reducing the dimensions. GIFs are uncompressed compared to modern video, so high-resolution clips will result in large files.

Is there a limit on video length?

While there is no hard limit, converting long videos into GIFs is not recommended due to memory constraints in the browser. For best results, keep your clips under 10 seconds.

People also search for

Related tools

More in this room.

See all in Files & Media