Video to GIF Converter

Turn a video into a GIF with meme captions

This tool works best on a larger screen (desktop).

About Video to GIF Converter

This tool seeks through your video one step at a time, draws each moment onto a canvas, and encodes the captured frames into a GIF itself. There is no conversion server and no FFmpeg: palette extraction (median cut) and LZW compression both run in the tool's own code. You can add classic top and bottom captions — Impact-style white text with a black outline — either on top of the picture or in white bars added above and below it.

GIF dates from 1987, and next to a real video codec it is wildly inefficient. A three-second clip that is a few hundred kilobytes as MP4 can easily be several megabytes as GIF. Three settings decide the size — frame rate, width and colour count — and the sections below explain what each one actually does.

A GIF can only use 256 colours per frame

The GIF specification allows at most 256 entries in a colour table, and every pixel is stored as an index into that table. A single video frame can contain tens of thousands of colours, so something has to decide which 256 (or fewer) survive. This tool samples pixels from every captured frame and builds one shared palette with median cut: it repeatedly splits whichever box of colours is widest along the red, green or blue axis until it has as many boxes as the colour count you chose, then averages each box.

Every pixel is then replaced by its nearest palette colour. The tool does not dither — it does not scatter the rounding error into neighbouring pixels to fake in-between shades — so smooth areas like sky and skin show visible steps, called banding. The upside is that undithered frames have long runs of identical indices, which LZW compresses well, so files stay smaller. Dropping to 64 colours makes banding more obvious on live-action footage, but cartoons, screen recordings and game clips with few colours often look almost unchanged.

Why the same clip is several times bigger as GIF than MP4

Video codecs such as H.264 predict each frame from the previous one and store only motion vectors plus the leftover difference. A static background costs almost nothing. GIF's LZW only finds repeated runs of pixels within a single frame and knows nothing about the previous frame, and this tool writes every frame as a full picture. GIF size therefore grows roughly with pixels × frames.

For short loops on a web page, web.dev recommends a muted, autoplaying, looping video element instead of a GIF for exactly this reason. GIF still earns its place wherever only an image file is accepted: some forums, chat reactions and emotes, and email.

Frame rate or width — which to cut first

Size scales with the square of the width. Going from 480 px to 360 px wide leaves (360/480)² = 0.5625 of the pixels, a cut of about 44%. Frame rate scales linearly: 15 fps to 10 fps removes a third of the frames. If on-screen text needs to stay readable, keep the width and lower the fps; if fast motion is the point, keep the fps and shrink the width.

GIF stores frame delays in hundredths of a second only. Rounding 15 fps (66.7 ms) to 7/100 s on every frame would slow it to about 14.3 fps, so the tool carries the rounding error forward and mixes 7, 7 and 6 hundredths. 12 fps alternates 8, 8 and 9 hundredths and lands on exactly 12 frames per second. Individual gaps can differ by up to 1/100 s, but the total running time matches the source segment. Values that divide 100 evenly — 10, 20, 25 fps — give identical gaps. If you ask for a high frame rate over a long segment, the tool caps the output at 200 frames and lowers the frame rate to fit.

Making meme captions readable

Captions are drawn before the palette is built, so white text with a black outline almost always survives even a small palette. Coloured text can come out muddy if the palette has nothing close to that colour. Long lines wrap automatically, and a caption block longer than eight lines is cut with an ellipsis on the last line.

Overlay captions cover part of the picture. Boxed captions leave the picture untouched but make the GIF taller, and the file grows by the same proportion.

Worked examples

Five seconds on the Balanced preset

Input
1920×1080 video, 5 s, 12 fps, 360 px wide, 128 colours
Output
60 frames at 360×203 px; the tool estimates about 2.2 MB

The estimate is 360 × 203 pixels × 7 bits (128 colours) × 0.6 (assumed LZW ratio) ÷ 8 ≈ 38,367 bytes per frame, times 60 frames. Real output depends on motion and colour; mostly static shots come out much smaller.

The same clip on the Light preset

Input
5 s, 8 fps, 240 px wide, 64 colours
Output
40 frames at 240×135 px; estimate about 0.5 MB

Pixels drop to about 44%, frames to 67%, and bits per pixel to 6/7. Multiplied together that is roughly a quarter of the Balanced file — plenty for a reaction image or emote.

Asking for 20 seconds at 15 fps

Input
20-second segment, 15 fps
Output
200 frames, actually played at 10 fps (100 ms delay)

20 × 15 = 300 frames exceeds the 200-frame cap, so the rate is lowered to 200 ÷ 20 = 10 fps. For a long GIF, reduce width and colours first.

How to use it

  1. Load a video and set the start and end points on the filmstrip.
  2. Choose a preset, or type fps, width and colour count yourself.
  3. Add top and bottom captions and pick overlay or boxed placement if you want them.
  4. Build the GIF, preview it and download.

Frequently asked questions

What is the most effective way to shrink a GIF?

Reduce the width. Size scales with its square, so 480 px to 320 px leaves less than half the pixels. After that, shorten the segment or lower the fps; the colour count comes last.

Why do skies and gradients show stripes?

That is banding from reducing to 256 colours or fewer. This tool does not dither, so raising the colour count to 256 helps, at the cost of a bigger file.

Is 15 fps played at the right speed?

GIF delays are stored in 1/100 s, so 66.7 ms cannot be stored as is. The tool mixes 7, 7 and 6 hundredths so the average is 15 fps and the total length is right. For perfectly even gaps, use a rate that divides 100 evenly, such as 10, 20 or 25 fps.

Does the GIF include sound?

No — the GIF format has no audio. Use the video compressor to make a small MP4 if you need sound.

My GIF stopped animating after I posted it.

Some platforms convert large or oversized GIFs into a still image or a video. Limits differ between services and change over time, so try a narrower width and lower fps to make the file smaller.

Sources

Last reviewed:

Privacy and how data is handled