More games at WuGames.ioSponsoredDiscover free browser games — play instantly, no download, no sign-up.Play

Video to GIF Converter

Free video to GIF converter. Trim a clip, set FPS, width, palette colors and loop, export a high quality GIF in-browser via ffmpeg.wasm. No upload.

Upload
Drag and drop a video here, or click to browse
Supports MP4, WebM, MOV, MKV, AVI, M4V
Drop an MP4, WebM, MOV, MKV, AVI or M4V file (clip up to 30 seconds recommended)

About Video to GIF Converter

Video to GIF Converter turns a short clip from any MP4, WebM, MOV, MKV, AVI or M4V file into an animated GIF that you can share on chat, email, forums, or social media. You choose the start and end timestamps, the output frame rate (5 to 30 frames per second), and the width in pixels, and the tool produces an optimized GIF using a high-quality two-pass palette pipeline: first ffmpeg analyses the trimmed clip and builds a custom 256-color palette from the actual content, then it re-encodes the frames using that palette with your chosen dithering, which keeps gradients smooth and skin tones natural even though GIFs are limited to 256 colors per frame. Professional controls let you set the palette size (max_colors, the GIF analog of a quality slider) to trade banding against file size, and the loop count so a deliverable can play once instead of forever. All of this happens inside your browser through ffmpeg.wasm, a single-threaded WebAssembly build of the ffmpeg tool, so the source video never leaves your device. Because it is the single-thread core, very high-resolution or AV1 sources may decode slowly or not at all; for those, re-export to H.264 MP4 first. The engine itself is heavy (about 25 MB) and is loaded only when you click Convert for the first time, then cached by the browser for subsequent conversions. Typical use cases include making reaction GIFs from screen recordings, turning product demo videos into auto-playing previews for landing pages, and salvaging short funny moments from larger videos without needing to install desktop software like FFmpeg, Photoshop or Premiere. See also our Video Thumbnail Generator and Change Aspect Ratio.

What does this Video to GIF tool actually do?

It takes a short slice of a video file you select, re-encodes it at a chosen frame rate and width, and writes the result as an animated GIF. Internally it runs the real ffmpeg command-line tool compiled to WebAssembly: first it extracts a custom 256-color palette from the trimmed clip with palettegen, then it remaps each frame to that palette with paletteuse and Sierra dithering. This two-pass approach produces GIFs that look noticeably better than a naive one-pass conversion, especially on faces, gradients, and dark scenes, which would otherwise show banding. Output is a standard GIF89a file that plays in every browser, every chat app, and every image viewer.

Which video file types and codecs are supported?

The browser uses its own decoder to preview the video and ffmpeg.wasm to convert it. H.264 MP4/M4V, VP8/VP9 WebM and most MOV (QuickTime) codecs are well supported. MKV and AVI containers convert fine, but many browsers cannot decode them in the inline preview, so the clip length may not be detected automatically; when that happens the tool falls back to a 30-second trim range you set manually. AV1 and some H.265 footage may decode slowly or not at all on this single-thread core, so re-export to H.264 MP4 first for the most reliable result. Audio is ignored, since GIFs cannot carry sound. There is no fixed file-size limit because nothing is uploaded, but files under 100 MB and clips under 30 seconds work best; very long or full-resolution clips force ffmpeg.wasm to hold large frame buffers in memory, which can crash a tab with under 4 GB RAM (the tool caps 'Keep original' width to keep that in check).

Is my video uploaded to a server or kept private?

Your video stays entirely on your device. The file is read into the browser's memory through the File API, written into ffmpeg.wasm's virtual file system, processed there, and the resulting GIF is handed back as a Blob your browser can preview and download. No network requests are made with the video bytes; the only outgoing requests are the one-time downloads of the ffmpeg.wasm engine itself (~25 MB) from a public CDN, which then sits in your browser cache. You can verify this in DevTools Network tab: after the engine has loaded, converting more clips creates zero outbound traffic. That makes the tool safe for personal recordings, screen captures of sensitive data, and confidential corporate footage.

How long does conversion take and how big will the GIF be?

On a typical modern laptop a 5-second clip at 320 pixels wide and 10 fps converts in about 6-12 seconds and produces a GIF of roughly 1-3 MB. The first conversion is slower because the ffmpeg.wasm engine has to download (~25 MB) and initialize, which adds about 10-30 seconds on a fast connection. Mobile devices and older laptops can be 3-5 times slower. The two-pass palette pipeline is more CPU intensive than a simple conversion but pays off in image quality and final file size. To minimize size for sharing, drop the FPS to 10 or below, lower the width to 320 px, and keep the clip under 5 seconds; you will rarely need more for a chat reaction GIF.

Video to GIF Converter — Free video to GIF converter. Trim a clip, set FPS, width, palette colors and loop, export a high quality GIF in-browser
Video to GIF Converter

Which browsers, devices and connection speeds are best?

This tool ships the single-thread @ffmpeg/core build, so it runs everywhere a modern WebAssembly engine does and does not depend on SharedArrayBuffer or special COOP/COEP headers; that keeps it compatible but means encoding uses one CPU core (a multi-thread core would be faster but is not bundled here). Chrome 92+, Edge 92+, Firefox 79+, and Safari 15.2+ all work. Mobile Safari and Chrome on Android work too but with less RAM, so keep clips short and the width modest. Because the engine bundle is around 25 MB, the first run on a 3G mobile connection can take several minutes; on 4G or home Wi-Fi it is usually under 30 seconds. Once the engine is in the browser cache, future visits load it instantly and work offline.

Why is my GIF huge, blocky, or jerky? How can I fix it?

GIF is a 1987 format limited to 256 colors per frame and a relatively coarse compression scheme, so high-resolution, high-fps clips inevitably produce huge files. If your GIF is too large, lower the width (320 px is plenty for chat), reduce FPS to 10-12 and keep the clip under 6 seconds. If colors look banded, switch to an output width that better matches the source (avoid aggressive downscaling). If motion looks choppy, raise FPS to 15-20 and shorten the clip to compensate for file size. If the result is corrupt, try converting with a different codec (re-export your source from MOV to MP4 first). For very long or high-quality animated content, consider WebP or MP4 instead of GIF; they support millions of colors and are far smaller for the same visual quality.

How do I get the smallest GIF without banding?

GIF has no bitrate or CRF, so the biggest lever on size is the palette: use the Palette colors (max_colors) control. Flat content like UI screen recordings, charts, or cartoons often looks identical at 64 colors yet weighs roughly a third to half of a 256-color export. Gradient-heavy footage (sunsets, skin, smoke) needs more colors, so keep 128 or 256 there. To avoid banding when you do cut colors, pair a lower count with Bayer ordered dithering (it adds a fine, evenly-distributed pattern that hides the steps and compresses better than error-diffusion); for the very smallest result set Colors to 32, Bayer dithering, FPS to 10 and width to 320. Concretely, a 5-second 320 px clip at 10 fps might be about 1.5-2.5 MB at 256 colors, near 1 MB at 64 colors, and well under that at 32 colors with Bayer. Trim duration and FPS first, then dial colors, because they multiply: total size scales with frames x width x height x palette efficiency.

Can I make the GIF play once, and is the trim frame-accurate?

Yes to both. GIFs loop infinitely by default, which is right for chat reactions, but for product demos, ads, or onboarding clips you usually want them to stop. Set the Loop count control to 'Play once' (it writes ffmpeg's -loop 1) or 'Play 3 times' (-loop 3); 'Infinite' is -loop 0. On trim accuracy, the tool seeks to your exact start timestamp using an accurate input seek, so the GIF begins on the frame the slider points at rather than jumping to the nearest keyframe a few hundred milliseconds away, which matters when you are isolating one precise moment. Both the palette-analysis pass and the encode pass use the identical seek and trim window, so the colors are sampled from exactly the frames that end up in the GIF. For comparison, animated WebP and APNG support full color and alpha and are often 30-70% smaller than GIF at the same quality, but GIF remains the most universally embeddable; use the palette and loop controls here when you specifically need a GIF deliverable.