Skip to content
ImageRuns in your browserPopular

Video to GIF

Convert video to GIF from any clip your browser can play, sampling the frames locally.

Upload
Single file · 100 MB max
Privacy
Nothing is uploaded
Cost
Free · no sign-up · no watermark

Loading tool…

The tool is loading its code on your device. This happens once and is cached for later visits.

Processed entirely on your device

Your file is read, transformed and re-encoded inside this browser tab using JavaScript. There is no upload endpoint — nothing leaves your machine, nothing is stored, and the result is created as a local object URL that disappears when you close the page.

Overview

About the Video to GIF

Convert video to GIF free online: pick the start and end, frame rate and width, and the clip is sampled frame by frame in your browser. MP4, WebM and MOV supported.

A GIF is the right shape for a moment: a reaction, a bug reproducing, a UI interaction, a goal. Video is the right shape for everything around it. A video to GIF conversion cuts the moment out and makes it loop, and this video to GIF converter does it entirely on your device.

How the video to GIF sampling works

The clip is loaded into a muted <video> element and seeked frame by frame at your chosen rate; each seeked frame is drawn onto a canvas and quantised into the GIF. Because decoding uses the browser's own codec support, the format list is honest — which is what keeps a video to GIF conversion in the browser honest about what it can read: MP4 (H.264), WebM, Ogg and playable MOV work, and exotic codecs are refused with an explanation rather than a spinner.

Getting a good-looking video to GIF result

Three settings decide what a video to GIF conversion looks like:

  • Shorter is better. Three seconds at 10 fps is 30 frames and reads perfectly; thirty seconds does not.
  • Width dominates size. 480 px is legible for most UI and reaction clips; 320 px for chat.
  • Lower fps for slow motion. A clip where little moves wastes frames at 15 fps — 6–8 fps keeps the file small without looking choppy.

The video to GIF frame budget, in numbers

Two limits run at the same time: at most 20 seconds are sampled, and at most 90 frames are written. Multiply your span by your frame rate — while the answer is 90 or below you get exactly the rate you asked for. Past that, the sample step widens so 90 frames spread evenly across the span, and the delay between them widens with it so the loop still takes as long to watch as the moment took to happen.

Frame rateLongest span at that exact rateA full 20-second span instead gives
30 fps3.0 s90 frames at 220 ms
15 fps6.0 s90 frames at 220 ms
10 fps9.0 s90 frames at 220 ms
8 fps11.2 s90 frames at 220 ms
6 fps15.0 s90 frames at 220 ms
4 fps20.0 s80 frames at 250 ms
2 fps20.0 s40 frames at 500 ms

The middle column is the one worth memorising: once a clip runs longer than nine seconds, raising the frame rate above 10 does nothing whatsoever. A 20-second video to GIF span yields 90 frames whether you ask for 10 fps or 30. Shorten the span and the frame rate becomes meaningful again.

Delays are stored in hundredths of a second, so whatever the arithmetic produces is rounded to the nearest 10 ms on the way into the file. Over ninety frames that rounding can shave a fifth of a second off a twenty-second loop — the animation is very slightly faster than the moment it came from, and no viewer will ever notice.

What the video to GIF results show

The file is named after your clip with .gif in place of its original extension, and the result row of every video to GIF conversion reports the frame count, the output dimensions and the byte size. The summary strip repeats frames and dimensions next to the source duration and the final size, which is the quickest way to confirm that the trim you chose really landed where you meant it to.

The loop is infinite, because the encoder writes the standard looping extension; the animation restarts forever rather than playing once and holding on the last frame. There is no audio, since GIF has nowhere to put one, and no transparency — anything transparent in the source is flattened onto white before it is quantised.

Why video to GIF sampling takes as long as it does

Every frame costs a seek: the browser moves the playhead to a timestamp, decodes forward to it and paints it. Each of those is an asynchronous round trip, so ninety frames means ninety sequential seeks, and the progress bar climbs in exactly those steps, labelled Sampling frame 12 of 90 as it goes.

Two things make it slower than the arithmetic suggests. A file whose keyframes are widely spaced — common in screen recordings optimised for small size — forces the decoder to work forward from a distant keyframe on nearly every seek. And a high-resolution source costs more to decode per frame even though the canvas it lands on is only 480 px wide: a 4K clip and a 1080p clip produce byte-identical dimensions in the output, but the 4K one takes longer to get there. Neither is a fault and neither can be avoided without shipping a demuxer. A five-second video to GIF conversion typically samples in a few seconds; a full twenty-second one takes considerably longer.

The honest video to GIF limitations

GIF carries 256 colours per frame, and the file this tool writes carries no transparency at all. Footage with smooth gradients therefore bands and dithers, whatever the settings. That is the format, not the tool — it is the price of an animation that plays in a comment thread, a README, a slide deck and a chat app without a single plugin, and the constraints every video to GIF converter inherits from 1987. When colour fidelity matters more than that universality, the clip should stay a video.

Private video to GIF conversion

Every video to GIF conversion on this page samples frames locally: the clip is seeked through the browser's own decoder, painted onto a canvas and encoded with gifenc, and the source file never leaves your machine. There is no upload, no transcode queue and no account, which matters because the clips people convert are often unreleased — product demos, bug reports, internal calls. A video to GIF tool that runs in the tab is the only version of this that can promise the footage stays yours.

Step by step

How to use the Video to GIF

  1. Drop a video file onto the upload area — duration and resolution are read without sampling a single frame.

  2. Set the start and stop seconds to isolate the moment you want; the span is capped at 20 seconds.

  3. Choose a frame rate and output width; 10 fps at 480 px suits most reaction clips.

  4. Read the estimate under the controls: it names the frame count, the delay per frame and the running time.

  5. Press Convert to GIF, watch the sampling progress, then download the looping result.

Why use it

Benefits and common use cases

What this tool is good for, and what it deliberately does not try to do.

Exact span control

Start and stop fields plus a live duration readout mean you convert the three seconds that matter, not the whole three-minute clip around them.

No ffmpeg, no upload

Frames are seeked and read through the browser's own video decoder and a canvas. A 100 MB clip never leaves your machine, and there is no server queue to wait in.

Automatic frame budgeting

If the fps and span you choose would exceed 90 frames, the sample step widens automatically and the per-frame delay widens with it — so a long clip degrades to a slower sample rate but still plays in real time, instead of producing a 40 MB animation or a fast-motion one.

Questions

Frequently asked questions

Short, honest answers about quality, limits and privacy.

Which video formats work?

Whatever your browser can play: MP4 with H.264, WebM, Ogg and most QuickTime MOV files. Codecs that need a system player — AVI with DivX, WMV, HEVC-only files — cannot be decoded by the browser and are reported honestly instead of failing silently.

Why is my GIF so large?

GIF size scales with frame count, pixel count and colour complexity. Halve the width and the file roughly quarters; drop from 15 fps to 8 and it nearly halves again. Video footage with gradients is the worst case for the 256-colour format.

Is there a length limit?

The sampled span is capped at 20 seconds and the frame count at 90, whichever binds first, and the delay between frames stretches to match so the loop still runs at real-time speed. That keeps outputs in the range chat platforms and comment systems actually accept.

Guides & tutorials

Guides for the Video to GIF

Practical walkthroughs, settings, and troubleshooting for your next step.