MP4 to GIF
Convert video clips to animated GIF — fully in-browser with a built-in GIF encoder
Drop a video here
Supports MP4, WebM, MOV, AVI
Max file size: 200MB
Performance tip: Keep clips under 5 seconds at 320px for best results. Larger sizes may take longer to process.
100% Private: All processing happens in your browser using a built-in GIF encoder with non-blocking async processing. Your files never leave your device.
Animated GIFs remain the universal standard for sharing short looping animations across chat apps, forums, pull requests, and documentation where HTML5 video elements are disallowed. This tool converts recorded video clips into animated GIF files directly in your web browser using an asynchronous, client-side GIF encoder. Your video files are processed on your local device without uploading megabytes of raw footage to third-party conversion servers.
The conversion pipeline extracts frames from the video via canvas, quantises the full-colour video frames into an optimised 256-colour global palette using the median-cut algorithm, and compresses the indexed pixels using LZW encoding. Because the process executes entirely on your device, private screen recordings, product demos, and personal media stay on your machine.
How it works
1. Drop a video here
Select or drop your video clip into the upload zone. The converter accepts MP4, WebM, MOV, and AVI formats up to 200 MB.
2. Configure GIF Settings
Use the default preset (320px width, 8 fps, 4-second duration) for fast processing, or toggle “Custom” to adjust width, frame rate, start timestamp, and clip duration up to 15 seconds.
3. Click Convert to GIF
Press “Convert to GIF” to capture video frames, compute the colour palette, and encode the animated GIF with live progress indicators.
4. Download GIF
Inspect the generated looping animation in the GIF Preview panel, check the final file size, and click “Download GIF” to save the file.
When you'd use it
Demonstrating software bugs in GitHub pull requests
Software developers frequently capture brief screen recordings of UI regressions or feature walkthroughs and convert them to GIF for immediate inline playback on issue trackers.
Embedding product walkthroughs in email campaigns
Marketing teams often need silent, auto-playing animations in newsletter templates where mainstream email clients block video playback elements.
Creating reaction clips and memes for team chat
Team members can trim a short humorous clip or highlight from a video recording and produce a lightweight animated sticker for Slack or Discord channels.
Adding looping visual aids to documentation wikis
Technical writers can transform complicated multi-step software procedures into short looping animations that illustrate interface actions at a glance.
Median-cut colour quantization: adapting video to GIF
Modern digital video streams record images in 24-bit TrueColor, allowing each individual frame to display up to 16.7 million distinct colours. In contrast, the legacy GIF89a format specification mandates an indexed colour palette restricted to a maximum of 256 entries for each frame or animation.
To bridge this gap without crushing image contrast, this converter samples pixels across the initial video frame and applies the median-cut algorithm. This recursively splits colour clusters along their widest variance channel to construct an optimal 256-colour global color table. A memory-efficient colour cache then maps subsequent video pixels to the nearest matching palette entry at high speed.
Balancing file size, resolution, and frame rate
Unlike contemporary video containers such as MP4 and WebM that employ motion compensation and temporal delta compression, GIF treats each frame as a complete bitmap compressed only with basic LZW tables. As a result, increasing the width or frame rate causes GIF byte counts to escalate dramatically.
For optimal performance and reasonable download sizes, keeping the width between 240px and 320px and the frame rate between 8 fps and 12 fps provides a fluid balance between smoothness and bandwidth. To keep memory usage manageable inside the browser tab, the encoder caps total frame count at 60 frames per conversion.
Audio stripping and looping behaviour
The GIF image specification does not contain an audio track, meaning any speech, background music, or system audio embedded in the source MP4 is automatically stripped away during frame extraction.
The generated file embeds standard Netscape 2.0 application extension blocks, instructing web browsers and image viewers to loop the animation continuously without requiring manual replay clicks.
Frequently asked questions
What is the maximum video file size and duration?
The tool accepts source videos up to 200 MB. In custom settings, clip duration can be set up to 15 seconds, with a maximum cap of 60 total rendered frames.
Does the converted GIF include audio?
No. The GIF standard does not support sound tracks, so all audio streams in the source video are removed during processing.
Why is my converted GIF larger than the original MP4 video?
MP4 uses advanced temporal compression that only saves differences between frames, whereas GIF stores indexed bitmap data for every single frame using simple LZW compression.
Does this tool use ffmpeg.wasm?
No. The converter uses an in-house pure JavaScript and canvas frame extractor paired with median-cut quantization, running smoothly in the browser without downloading heavy external WebAssembly binaries.
Are my uploaded videos stored or transferred anywhere?
No. All frame extraction, colour quantization, and LZW encoding execute locally in your browser session. No video data is uploaded to remote servers.

