Video to GIF

Video to GIF — Free Converter in Your Browser

Last updated:

Pick a clip, get a GIF. Conversion happens locally in your browser — your video never leaves your device.

Runs in your browserNo file uploadPick start/end timePick width and FPSFree, no signupffmpeg.wasm, lazy-loaded on first use

Want a GIF of a screen recording? Pullsy records at 1080p with proper FPS — perfect for GIFs. Record your screen →

Runs in your browser No file upload Pick start/end time Pick width and FPS Free, no signup

Pick a clip, get a GIF. Conversion happens locally in your browser — your video never leaves your device.


How it works

1

Pick your video

Drop a MP4, MOV, WebM, or any other video file. We support any input that ffmpeg can read.

2

Set start, end, width, FPS

Pick the time range to convert (default 0 → 3 seconds), the output width (default 480 px), and the frame rate (default 12 fps). Lower FPS = smaller file.

3

Click 'Load converter' and download

ffmpeg.wasm loads on first use (~31 MB) and generates the GIF with a two-pass palette for better color and smaller files. The GIF is ready to download in seconds.


How long does it take?

For a 3-second clip at 480px and 12 fps, generation takes 5–10 seconds on a modern laptop. Longer clips, larger widths, and higher FPS scale linearly. We use a two-pass palette generation (palettegen + paletteuse) for the best quality-to-size ratio in GIF format.

What's the right width and FPS?

For a Slack/Discord GIF, 480px at 10–12 fps is the sweet spot — readable at chat size, small file (~1–2 MB for a 3s clip). For a Twitter GIF, 720px at 15 fps looks better but is larger (~3–5 MB). For a documentation GIF that needs to show fine detail (e.g., cursor movement), 800px at 15 fps is the upper limit before files get unwieldy.

When a GIF beats a video

GIFs look dated, but they are still the right answer for some places. Chat that doesn't autoplay video. Slack, Discord, IRC, most email clients, and many forums will not autoplay video inline. GIFs autoplay everywhere. Documentation that needs to show motion. A 3-second GIF of a button click is more readable than a 3-second MP4 that requires the reader to click play. Most documentation systems (Notion, Confluence, GitHub) embed GIFs inline. Loop demos. A 2-second loop of a UI state or a code typing effect. The looping is built into the format — no extra work. Social media drafts. A quick GIF of a UI flow for Twitter or LinkedIn, before committing to a full video render.

How the GIF encoder works

We use ffmpeg.wasm 0.12 with a two-pass palette generation. The first pass generates an optimal color palette from the source frames; the second pass uses that palette to quantize each frame. ``` ffmpeg -ss 0 -t 3 -i input.mp4 -vf 'fps=12,scale=480:-1:flags=lanczos,palettegen' palette.png ffmpeg -ss 0 -t 3 -i input.mp4 -i palette.png -lavfi 'fps=12,scale=480:-1:flags=lanczos[x];[x][1:v]paletteuse' output.gif ``` GIFs are limited to 256 colors per frame, which is why the palette pass matters — without it, you get banding and weird color shifts in skin tones and gradients.

Privacy and how we handle your data

We do not upload your video to any server. Conversion happens entirely in your browser via ffmpeg.wasm. Your video never leaves your device. The output GIF is a Blob URL pointing at in-memory data. The only network traffic is the initial 31 MB ffmpeg.wasm download (cached by your browser).

Can I make a GIF with a transparent background?

Not from a video with ffmpeg's standard GIF encoder. GIF supports a single transparent color per frame, but ffmpeg's GIF muxer does not preserve the alpha channel. For true transparency, convert to APNG or WebP instead — those formats support full alpha. We do not have a WebP/APNG tool yet; the GIF format is the right choice for a chat-friendly, broadly-compatible loop.

Why is my GIF still large?

GIF is a 1980s format and is not great at compressing modern video. The single biggest lever is frame rate: a 12 fps GIF is ~20% the size of a 24 fps GIF for the same content. The second lever is width: 480px is fine for chat, 800px is for documentation. The third lever is length: trim the clip to the part that matters.

Can I do a longer GIF?

Yes, but file size grows fast. A 10-second clip at 480px and 12 fps is usually 4–8 MB. Slack starts to struggle above 8 MB GIFs. For longer captures, use the Video Compressor or Trim first to get a tighter clip, then convert to GIF.



Frequently asked questions

Is this really free?

Yes. No signup, no payment, no daily limits.

Does my video get uploaded?

No. Conversion happens entirely in your browser via ffmpeg.wasm.

What's the max GIF length?

There is no hard limit. File size is the constraint: a 10-second clip at 480px and 12 fps is 4–8 MB. For longer captures, trim first.

Can I do HD GIFs?

Yes — set the width to 720 or 800 and FPS to 15. File size scales with both. A 5-second 720p 15fps GIF is ~6–10 MB.