Skip to content

Video to GIF Converter Online Free

Turn a short video clip into an animated GIF. Set the framerate, the width, and the trim points so the output stays small.

Uploaded to our server over TLS·auto-deleted in 10 minutes.

Learn more

Optional. Leave empty for start of video.

Optional. Leave empty for end of video.

Files are processed on our secure server and automatically deleted after 10 minutes. Max file size: 1.00 GB.

About this tool

This tool converts a short video clip into an animated GIF. Drop in an MP4, WebM, MOV, AVI, or MKV, pick a start and end time, set a framerate and output width, then convert. GIF encoding genuinely needs ffmpeg with a proper two-pass palette-generation step; anything else produces banded, dithery output that looks like it was made in 1998. So the file uploads over HTTPS to a small server in Germany (Hetzner) where ffmpeg does the work. The upload and the output GIF are both auto-deleted from the server's disk within 10 minutes of conversion. No account, no email gate, no watermark on the output, no logging of file contents.

How to video to gif converter online free

  1. Upload your video

    MP4, WebM, MOV, AVI, or MKV all work. The three usual sources are phone recordings, desktop screen captures (QuickTime, OBS, Game Bar), and footage out of editing software. The file uploads over HTTPS to our server. If your file is in a format not listed, transcode it to MP4 first using HandBrake or VLC.

  2. Set start and end times

    Trim to the moment you actually want. Keep clips under about 15 seconds or the GIF balloons fast. GIF file size grows roughly linearly with duration at fixed FPS and dimensions, so a 30-second clip is roughly twice the size of a 15-second one with everything else equal. Trim aggressively. Most "demo GIFs" only need 5 to 8 seconds.

  3. Set framerate and width

    10 FPS at 480 px wide is the sane default for messaging and embedded README demos. 15 FPS at 600 px if motion smoothness matters more than the file size, useful for animation showcases or fast-paced gameplay. 8 FPS at 360 px if you are trying to squeeze under a 5 MB upload limit. Each lever has a real effect: framerate roughly linearly, dimensions roughly quadratically.

  4. Convert and download

    ffmpeg runs a two-pass palettegen and paletteuse so the colours don't look like a 1996 GeoCities page. The GIF comes back to your browser as a download. Both the input video and the GIF output are deleted from the server automatically within 10 minutes. There is no archive, no history, no copy retained on the disk.

Why use this tool

GIF is a terrible format for almost everything except one specific job: silent, autoplaying, looping clips that need to embed in places where actual video does not. That niche has not gone away despite MP4 being technically superior. Slack auto-plays GIFs inline in messages but treats MP4 attachments as files you have to click to download. GitHub renders GIFs inline in pull request comments, issues, and README files but won't render an embedded MP4 in the same places. Notion, Discord screenshots, Twitter quote-replies, README demos for CLI tools, bug-report attachments on Linear — all of those still want a GIF. The reason this tool exists is that every web service for this either crops your clip to a 5-second hard cap, slaps a watermark on the output, or makes a 50 MB file for a 6-second clip because the defaults are wrong. Here you get explicit control over the three levers that actually matter (framerate, width, and duration) so you can land under whatever size budget your destination has. Slack uploads cap at 8 MB unless you're on a paid plan, GitHub comments cap at 10 MB, Discord at 8 MB unless you have Nitro. Pick 10 FPS at 480 px wide for a 6-second clip and you will usually land under 3 MB with no awful dithering artefacts.

Features

Precise trimming controls

Pick the exact start and end seconds for the segment you want. Useful when only one specific moment of a 30-second screen recording matters and you don't want to dump the whole thing on a Slack channel. Trimming server-side before encoding means the data fed to the GIF encoder is already just the segment you care about, which keeps the output size sensible and the conversion fast. The trim happens via ffmpeg's seek-then-input pattern so it's precise to the frame.

Framerate control with honest trade-offs

Choose between 5 and 30 FPS for the output. Lower FPS means smaller file size and choppier motion. Higher FPS means smoother motion and a much bigger file. For most UI demos and short reaction clips, 10 to 15 FPS is invisible in quality terms but cuts the file size roughly in half versus 24 FPS. There is a real trade-off here. I won't pretend higher is always better. For fast hand-drawn animation or fast-paced gameplay, 24 to 30 FPS does look noticeably better; for slow UI demos, 10 FPS is fine.

Output width control

Set the output width in pixels. Height scales automatically to preserve the original aspect ratio so you don't get squashed output. GIF file size scales roughly with the square of dimensions, so going from 720 px wide to 480 px wide is around a 55% size cut for the same clip at the same FPS and duration. Most messaging apps display GIFs at 400 to 500 px anyway because of their UI constraints, so going wider just wastes both upload time on your end and download time on the recipient's.

Proper palette generation

GIF only supports 256 colours per frame, which is what makes optimisation matter so much. ffmpeg runs a palettegen pass that samples the dominant colours of your clip, then a paletteuse pass with Floyd-Steinberg dithering so the dominant colours of your specific clip get the encoding budget. Lazier converters skip the palette pass entirely and your output looks like rainbow noise on gradients. This is the main reason ffmpeg can't live in the browser as WASM. The palette pass needs the full clip's frames in memory and the algorithm doesn't fit comfortably in a 50 MB WASM budget.

Privacy & security

For this tool your file is uploaded to our server over HTTPS, transformed, and returned to you. The uploaded file and all derived outputs are automatically deleted within 10 minutes — there is no long-term storage and we do not retain copies. We do not inspect file contents, run analytics on them, or share them with third parties. If a stronger privacy guarantee matters for your workflow, prefer one of our local-only tools where the file never leaves your browser.

Frequently asked questions

Is this free, and is there any signup or quota?
Yes, free. No account, no email gate, no per-day cap. I pay for the server myself and the per-conversion cost of GIF encoding is small. If you make a hundred GIFs in a row I'm not going to send you a bill, but I will probably notice in the server logs and be mildly curious about what you're building. No ads on the page right now; if I ever add some to cover hosting, that will be obvious and disclosed up front in the privacy policy.
Where does my video go, and how long does it stay on the server?
The video uploads over HTTPS to our server, a small FastAPI service hosted in Germany. ffmpeg there extracts the trimmed segment, builds an optimised palette, and writes the GIF using Floyd-Steinberg dithering. Both the uploaded input video and the GIF output file are deleted from the server's disk automatically within 10 minutes of conversion. There is no database keeping a copy, no S3 bucket, no off-site backup, no inspection of file contents, and no analytics on what people are converting. If you want to audit the auto-delete behaviour, the API code is in the project repo and the deletion job is a simple cron + tmpfile pattern.
How do I keep the output file size down?
Three levers, in order of impact. First, shorter duration: GIF size is roughly linear in clip length. Second, smaller output width: size is roughly quadratic in dimensions, so 480 px is dramatically smaller than 720 px even for the same content. Third, lower framerate: going from 24 FPS down to 12 FPS roughly halves the file size. If you want a 3 MB output from a 10-second clip, try 480 px wide at 10 FPS as a starting point and dial up or down from there. Heavy motion blows up size faster than still scenes because ffmpeg has less room to compress with the GIF format's limited toolkit.
When should I use a GIF instead of just sending the MP4 file?
Only when the destination autoplays GIFs but not MP4s, or strips out video tags. The list of places where that matters is real but specific: Slack messages, GitHub README files and PR comments and issue comments, Notion pages embedded as image, Discord image embeds (when not using the upload-as-attachment path), the README of any open-source repo on GitHub or GitLab. In every other context (email attachments, websites you control, any HTML where a `<video>` tag works) MP4 is dramatically smaller, higher quality, and supports audio. Don't put a 12 MB GIF on a webpage when a 1 MB MP4 in a video tag plays better.
What are the duration and input size limits?
Input video up to 200 MB. For the output GIF, you control the duration via the trim points, but practically anything over 15 to 20 seconds at usable framerates and dimensions produces files too big for most messaging apps. If your source clip is 5 minutes long and you only need one moment, set the trim points to grab just that moment rather than uploading the whole thing through. You'll save upload time and the conversion will be faster because ffmpeg only has to process the trimmed segment for the palette pass.
Does it work for screen recordings?
Yes, and that's probably the most common use case in my logs. Record with QuickTime on macOS (Cmd-Shift-5), the built-in Game Bar on Windows (Win-G), or scrcpy on a phone tethered to a desktop, then upload here, trim to the actual demo moment, and convert. Screen recordings tend to compress to GIF better than camera footage because they have large flat colour areas, sharp edges, and minimal noise, all of which the GIF palette can encode efficiently. You can often go to a higher resolution at a lower file size than you'd expect from a camera-shot clip.
Does it work on a phone?
Yes. Mobile Safari and Chrome both let you pick a video file from the device camera roll via the OS file picker. Upload speed depends on the connection. Over 4G LTE a 30-second 1080p phone video might take 20 seconds to upload before conversion starts, on 5G or Wi-Fi it's much faster. The trim and dimension controls work on touch devices, though setting precise start/end times is easier on a desktop because of the larger slider hit area. If you're going to be making a lot of GIFs from phone clips, doing it on Wi-Fi at a desk is dramatically more efficient.
Will the output have a watermark or any kind of branding or tracker?
No watermark of any kind. The GIF file itself contains a minimal ffmpeg-written metadata block (the encoder version string and the timestamp of encoding), which is standard for any tool that uses ffmpeg under the hood. There is no "made with mytoolbox" branding burned into pixels, no tracker pixel, no link in metadata, no audio (GIF doesn't support audio anyway, but worth saying). The output is clean enough to ship straight to a public README without anyone knowing where it came from.