No upload, 100% local, no account

Video to GIF

Convert a short clip into a looping GIF. Pick the frame rate and width, everything runs in your browser.

How Video to GIF works

Convert a video clip into an animated GIF directly in your browser using ffmpeg WebAssembly. The conversion uses a two-pass palette-optimised approach: the first pass runs the palettegen filter to build a 256-colour palette tuned to your specific footage, and the second pass runs paletteuse to map every frame to that palette. The result has far better colour fidelity than a naive single-pass conversion, which tends to produce harsh banding on gradients and skin tones.

GIF is an older format with a hard 256-colour ceiling, so footage with rich gradients, cinematic colour grading, or fast camera motion will always show some colour limitation. This tool is best suited for short loops, reaction clips, tutorial highlights, and memes, situations where GIF is the expected format. File size grows quickly with resolution and frame rate, so trim the clip to the essential seconds and keep the output width around 480-640 pixels for manageable results.

How to use Video to GIF, step by step

  1. Drop or select the video clip you want to convert.
  2. Set the time range if you only want a segment of the video.
  3. Choose the output width in pixels (smaller = smaller file) and the frame rate (10-15 fps is usually smooth enough).
  4. Click Convert to GIF to start the two-pass palettegen/paletteuse pipeline on your device.
  5. Download the animated GIF when ffmpeg finishes.

Common use cases

  • Creating a looping reaction GIF from a short comedy clip to post in a chat app.
  • Turning a 3-second UI animation prototype into a GIF to embed in a GitHub issue or design review comment.
  • Generating a product feature preview GIF for a README or documentation page.
  • Making a short tutorial highlight loop from a screencast recording for a blog post.

Frequently asked questions

Why does my GIF still show colour banding even with palette optimisation?

GIF is limited to 256 colours per frame regardless of the optimisation method. The palettegen/paletteuse two-pass approach gets as close as possible to the source colours, but footage with smooth gradients, HDR tones, or many hues will still show visible quantisation artefacts. Reducing the frame size reduces the number of distinct colours per frame and often improves the result.

Is my video uploaded to a server to be converted into a GIF?

No. Both the palettegen and paletteuse ffmpeg filter passes run inside your browser tab via WebAssembly. Your video is read into local memory, the palette is computed there, and the GIF is written on your device before being offered as a download. Nothing leaves your machine.

How do I keep the GIF file size reasonable?

Three settings control GIF size: output width (each pixel row costs proportionally), frame rate (fewer frames per second means fewer frames total), and clip duration (every extra second multiplies frame count). A 480-pixel-wide, 12 fps, 4-second GIF is a typical starting point for a shareable clip under 5 MB.

Will the GIF loop forever or play once?

ffmpeg.wasm writes the GIF with a NETSCAPE looping extension set to infinite loops by default. Every modern browser, messaging app, and image viewer that supports animated GIF will loop it continuously. This is a property baked into the file, unlike MP4 looping which depends on the player.

Can I convert a WebM or MKV to GIF, not just MP4?

Yes. ffmpeg.wasm reads any container it can demux, including WebM, MKV, MOV, and AVI. The output is always an animated GIF regardless of the input container.

Why does a long or high-resolution conversion take so long?

The two-pass palette approach decodes every frame twice: once to build the palette and once to quantise the pixels. For a 10-second 1080p clip at 24 fps, that is 480 frames decoded twice through WebAssembly without GPU acceleration. Reducing the clip duration, frame rate, and output resolution are the three most effective ways to speed up conversion.

Can I make a GIF from a video on my phone?

Yes, for a short clip at a modest width. The two-pass palette process is more demanding than a simple stream copy, so keep the clip to a few seconds and the width around 320-480 pixels on a phone; a long, wide, high-frame-rate source is better converted on a computer.