A LITTLE HELP. A LOT DONE.
Good tools.
Great flow.
Your shortcut to the everyday. Create, convert, calculate,
and get back to what you love.
✳
✳
✓ Free to use✓ No sign-up✓ 500+ possibilities
About this tool
Video to GIF Converter transforms any MP4 or WebM video segment into a smooth, palette-optimised GIF animation entirely inside your browser using ffmpeg.wasm. No video data is ever uploaded to a server. The tool uses a professional two-pass approach: the first pass analyses the video frames to generate an optimal colour palette, and the second pass renders the final GIF using that palette for dramatically better colour accuracy compared to single-pass conversion. You can choose from three FPS presets (5, 10, or 15 frames per second) and three width presets (320, 480, or 640 pixels) to balance quality against file size.
Why use it
Two-pass palette optimisation for best possible GIF colour accuracy
100% private — video never leaves your device
No file upload limits or server queue waits
FPS and width presets make it easy to hit the right file size target
Free, no watermark, no signup
Works offline after the first ffmpeg.wasm cache
How to use
- Upload your MP4 or WebM video file using the drop zone.
- Enter the start and end time in seconds to select the clip segment to convert.
- Choose an FPS preset — 10fps is a good balance for most content.
- Choose an output width — 480px works well for social media and chat.
- Click 'Convert to GIF' and wait for the two-pass rendering to complete.
- Preview the GIF and click Download.
When it helps
- Creating reaction GIFs from video clips
- Making looping animations for documentation or tutorials
- Converting short gameplay highlights to shareable GIFs
- Exporting preview loops for product demos
- Generating chat/Slack-friendly GIFs from recorded calls
- Building animated email banners that don't require autoplaying video
Examples
01Reaction GIF from a video clip
InputMP4 source, start 0s, end 3s, 10 fps, 320 px width
Expected result3-second looping GIF roughly 800 KB, perfect for chat reactions
02Tutorial loop for documentation
InputWebM screen recording, 5-second segment, 5 fps, 640 px width
Expected resultSub-2 MB GIF showing a UI flow in crisp loops, embeddable in a README
03Gameplay highlight for social
InputMP4 game capture, 6-second segment, 15 fps, 480 px width
Expected resultSmooth high-motion GIF around 4 MB, ready for Twitter or Discord
Tips
- Trim to the shortest possible segment first — every extra second of source dramatically inflates GIF size.
- When colour fidelity matters (logos, brand demos), keep width at 480 px; when motion matters (action clips), keep FPS at 15.
- If the GIF still looks too large, drop FPS to 8 — most viewers can't tell the difference between 8 and 10 fps.
- For screen-recording GIFs of UI demos, 5 fps and 640 px width is usually plenty and keeps files under 2 MB.
- Avoid converting clips with constant gradients or noise (sky, water, film grain) — palette-based GIF banding is ugly here.
- Pre-trim a long source with the Video Trimmer tool first; this tool handles the GIF render best on short inputs.
Frequently Asked Questions
Does my video leave my device?⌄
No, processing is 100% local in your browser. Your video file is never uploaded to any server.
Why use two passes for GIF conversion?⌄
The first pass generates an optimal colour palette by analysing your specific video frames. Using that palette in the second pass gives far better colour accuracy than a generic 256-colour palette.
What FPS should I choose?⌄
5fps for simple or slow-moving content to keep file sizes small. 10fps is the sweet spot for most clips. 15fps for fast action where smoothness matters.
Why is my GIF so large?⌄
GIF is an inefficient format for video. Choose a lower FPS, narrower width, or shorter clip duration to reduce file size.
What video formats are supported?⌄
MP4 and WebM. MOV files may also work if the codec is H.264 or VP9.
Why does it need the first ~30MB download?⌄
ffmpeg.wasm downloads the WebAssembly binary the first time — it is then cached by your browser for instant subsequent use.
Why does it require Chrome or Edge?⌄
ffmpeg.wasm relies on SharedArrayBuffer, which only works on pages that ship COOP/COEP cross-origin isolation headers. This site sets them, but the browser must also support the feature.
Glossary
- ffmpeg.wasm
- WebAssembly build of FFmpeg that runs in the browser. Powers all video encoding in this tool with no server round-trip.
- SharedArrayBuffer
- Low-level shared memory required by ffmpeg.wasm for multi-threaded encoding. Available only on cross-origin-isolated pages.
- Two-pass encoding
- An encoding strategy where one pass analyses the input (here, to build a palette) and a second pass produces the final output using that analysis.
- Palette
- GIF supports a maximum of 256 colours per frame. A custom palette generated from your clip preserves visual fidelity far better than a generic one.
- FPS (frames per second)
- How many still images make up one second of motion. Higher FPS means smoother motion but larger file size.
- Container format
- The file wrapper (MP4, WebM) holding compressed video and audio streams. The tool reads these inputs and writes a GIF container as output.
- Codec
- The compression algorithm inside the container. MP4 typically uses H.264 video; WebM uses VP9. GIF uses run-length-encoded indexed colour.
- Dithering
- Mixing two palette colours in a pattern to simulate a third. FFmpeg's palette filters apply dithering automatically to reduce banding.