Video to GIF
Turn a clip from any video into a smooth, high-quality animated GIF. Free, private, and your files never leave your device.
Drop a video here or click to choose
Supported input: MP4, MOV, MKV, WEBM, AVI
The two-pass palette pipeline
GIF can only show 256 colours in a frame, so the quality of a GIF is mostly decided by which 256 colours you pick. This tool does it the careful way, running FFmpeg compiled to WebAssembly inside the tab itself. Everything happens in your browser and nothing is uploaded to a server. Engine core files total about 32 MB, pulled from a public CDN the first time you convert and cached by the browser afterwards.
Pass one seeks to your start time, takes your chosen duration, applies fps and a Lanczos scale to your target width, then runs palettegen=stats_mode=diff. The diff mode weights the palette towards the parts of the frame that change between frames, which is what you want for a moving subject on a still background. Pass two decodes the same range again, loads that palette as a second input, and renders with paletteuse=dither=bayer:bayer_scale=3. Ordered Bayer dithering keeps gradients from banding without the noisy speckle that error diffusion leaves behind, and it compresses better because the pattern repeats.
Height is never set directly. The scale filter uses -1 for height, so the source aspect ratio is preserved and the height is chosen to match.
Choosing width, frame rate and duration
Width offers 240, 360 or 480 pixels with 360 selected by default. Frame rate offers 10, 15 or 20 with 15 as the default. Duration starts at 3 seconds. File size grows roughly with width times height times frame count, so doubling the width multiplies the size by about four while doubling the frame rate only doubles it. The estimate line under the controls uses that relationship, assuming a 16:9 frame and roughly 0.12 bytes per pixel after palette compression, and updates as you change any of the three.
A worked example
Take a 1080p phone clip of a dog jumping. Scrub the preview to the jump, press Use current time, which writes 12.4 into Start, and set Duration to 2.5. Leave Width on 360 px and Frame rate on 15 fps. The estimate reads about 1.3 MB across 38 frames. Click Create GIF, watch the log show "Pass 1: building colour palette" then "Pass 2: rendering GIF with palette", and the finished animation appears in the preview panel over a chequerboard background. Downloading gives you dog-jump.gif, named after the source with the extension swapped.
What GIFs suit, and what they do not
A short animated GIF still beats a video file in places where autoplay and silence matter: a bug report in GitHub or Jira showing the exact click sequence that breaks a page, a Slack or Discord reaction, a product feature loop inside a marketing email, a step by step demo in software documentation, a Confluence page showing new staff how to complete a form, or a reaction clip for a forum that will not accept video embeds.
Where GIF is the wrong answer: anything with sound, anything longer than about ten seconds, anything where colour fidelity matters such as a photo slideshow, and anything you want to post as a video on Instagram or TikTok. Those platforms convert an uploaded GIF back to video anyway, usually badly, so upload the original clip instead.
Memory, formats and other limits
- Inputs may be MP4, MOV, MKV, M4V, WEBM or AVI. The output is always a GIF.
- Files over 500 MB raise an on screen warning. The whole source has to sit in the tab's memory alongside both passes, so very large videos can fail outright.
- If memory does run out, the tool says so and suggests a shorter clip, a smaller width or a desktop browser rather than leaving you guessing.
- There is no crop, rotate, text overlay, speed change or reverse. Duration and start time are entered in seconds, not as a timecode.
- Audio is discarded, because the format has no way to carry it.
- The GIF loops forever by default and that is not adjustable here.
Alternatives on this site
- Want the video shorter but still a video? Trim Video cuts a range without converting the format.
- Want the same video at a smaller file size? Compress Video is the right tool.
- Turning an existing GIF or other image into a different format is handled by Image Converter.
- If only the sound matters, MP4 to MP3 pulls the audio out.
- Adding captions before you convert is possible with Caption Studio, and Meme Maker handles still image text.
Making a GIF is free. Should the credit held on this device run out, a brief rewarded advert precedes the following conversion, and no watermark or login appears.
FAQ
Does my video get uploaded?
No. Both FFmpeg passes run inside the browser tab on your own device, so the clip never travels anywhere. The only download is the engine itself on your first use.
Why two passes instead of one?
The first pass studies your actual frames to choose the best 256 colours, and the second renders against that palette with Bayer dithering. A single pass would use a generic palette and show visible banding.
My GIF came out huge. What should I change?
Cut the duration first, then drop the width from 480 to 360 or 240, then lower the frame rate to 10. Width has the biggest effect because size scales with area.
Can I set the output height?
Not directly. You pick the width and the height follows the source aspect ratio automatically, which stops the picture from being stretched.
Will the GIF keep the sound?
No. The GIF format cannot store audio at all. If the sound matters, keep the clip as a video or extract the audio separately.