Free Video to GIF Converter
Supports MP4, WebM, MOV, AVI, and more. Convert any video clip to an animated GIF with full FPS and size control — entirely in your browser. No upload. No signup.
Drop a video here or click to browse
Accepts MP4, WebM, MOV, AVI — converts in your browser
How It Works
Drop your video file onto the converter
Any common video format is accepted — MP4, WebM, MOV, AVI, and others. The file is processed entirely in your browser; no data is transmitted to any server. Files up to 50 MB are supported.
Adjust FPS and output width to match your target
Lower FPS (8–12) reduces file size at the cost of smoothness — ideal for reaction GIFs and memes. Higher FPS (15–24) produces smoother motion for product demos and tutorials. Output width directly controls GIF dimensions: 320px for compact sharing, 480–640px for social media, 800px+ for high-fidelity demos.
Click Convert and watch the GIF render
FFmpeg WebAssembly performs a two-pass palette-optimized encode in your browser. Progress is shown in real time. When complete, click Download to save your GIF.
Share your GIF anywhere
The output GIF loops infinitely and auto-plays on every platform — Slack, Discord, GitHub, Reddit, Twitter, iMessage, Notion, Confluence, Linear, Jira, and any website via a standard <img> tag.
Why GifToVideo Converts Any Video Format
Most online video to GIF tools support only MP4. This converter uses FFmpeg WebAssembly — the same multi-format video engine powering professional editing suites — which natively decodes every major container format. Whether your source is an iPhone QuickTime recording (.mov), a screen capture in WebM, an old AVI from Windows, or a standard H.264 MP4, the same conversion pipeline handles them all without requiring you to first convert to MP4.
This matters in practice: iPhone and iPad recordings are MOV files. Screen recorders like OBS default to MKV or WebM. Android screen recordings are MP4, but some apps produce AVI. Legacy video archives often use AVI or FLV. Supporting all these formats means you can go directly from source file to GIF without any intermediate steps.
Use GIF when: you need auto-playing, looping animation with zero user interaction in messaging apps, email clients, or developer tool comments. GIF is the only animated format that renders inline in GitHub Markdown, Notion, Linear, Jira, Slack, Discord, iMessage, and email without requiring the recipient to press play.
Use video (MP4/WebM) when: file size matters, quality matters, or the animation is longer than 10–15 seconds. A 10-second GIF at 15 FPS will weigh 5–15 MB. The same clip as an MP4 weighs 300–800 KB. For web pages, always prefer video over GIF — Google's Lighthouse penalizes animated GIFs as a performance anti-pattern.
Use GIF for short, impactful moments: reaction clips under 5 seconds, product highlights, CLI tool demonstrations, bug reproduction steps, loading animations, and social media reaction content. The universal auto-play behavior makes GIF uniquely effective for these use cases even with its larger file size.
File size tips for GIF: keep clips under 8 seconds, use 10–15 FPS rather than 24 FPS, resize to 480px width or smaller, and choose content with limited color variation (screen recordings, UI animations, and cartoon-style graphics compress best). If your output GIF is over 5 MB, run it through the GIF Compressor to reduce it further.
Key Features
Any Video Format
MP4, WebM, MOV, AVI, MKV — FFmpeg decodes all major containers without pre-conversion.
Palette-Optimized Output
Two-pass palettegen in stats_mode=diff for noticeably better colors than single-pass tools.
FPS and Width Control
Dial in the exact frame rate and output dimensions for your target platform.
100% Private
No network requests during conversion. Your video stays on your device the entire time.
Works on Mobile
Android Chrome and iOS Safari both supported. Flagship phones from 2020+ handle up to 30 MB smoothly.
Infinite Loop
All output GIFs include the Netscape loop extension — they auto-loop everywhere.
Format Comparison
| Format | Extension | Common Source | Notes |
|---|---|---|---|
| MP4 (H.264/H.265) | .mp4 | Android, camera, web | Most common, fully supported |
| WebM (VP8/VP9) | .webm | OBS, browser recording | Open web format, excellent support |
| QuickTime | .mov | iPhone, iPad, macOS | H.264 or HEVC codec inside |
| AVI | .avi | Legacy Windows, some cameras | Older container, widely decodable |
| MKV | .mkv | OBS Studio, Handbrake | Flexible container, H.264/VP9 inside |
Technical Details
This tool loads @ffmpeg/core — a full build of FFmpeg compiled to WebAssembly using Emscripten. WebAssembly is a binary instruction format that runs at near-native speed inside browser sandboxes, with no server required. The WASM binary is fetched once from a CDN and cached in your browser for subsequent conversions.
When you submit a video, the tool writes it to FFmpeg's in-memory virtual filesystem, runs the conversion command (demux video → apply filters → palettegen → paletteuse → write GIF), then reads the output from the virtual filesystem and creates a browser object URL for download. The entire process is sandboxed in a Web Worker, so the browser UI stays responsive during encoding.
GIF color optimization uses FFmpeg's palettegen filter in stats_mode=diff, which weights palette color selection based on inter-frame color differences rather than treating each frame in isolation. This produces noticeably better colors in animated content compared to per-frame palette generation, at the cost of slightly longer encode times.
