piapia123
en

Video to GIF

Media

Everything runs locally in your browser — nothing is uploaded

Drop a video here, or click to choose

MP4 / MOV / WebM · up to 200 MB per file

Turn a stretch of video into a GIF. GIF dates from 1987: 256 colours per frame and no inter-frame compression, which is why the same content is several megabytes as a GIF and a few hundred kilobytes as MP4 — and why the settings have to be adjustable, and why this tool lets you pick the range from the preview (scrub the player to where you want to start and type that time in) instead of imagining what second 7 looks like. Size scales with the square of the width (640 down to 320 is roughly a quarter of the file) and linearly with length and frame rate, so shrinking the width is the first lever. Everything runs on this machine: decoding by the browser's own `<video>`, frames via canvas, encoding in JS. The video is never uploaded.

Features

  • Cut a range out of a video and make a GIF, accurate to 0.1 seconds
  • Frame rate from 8 to 20 fps (10 is usually plenty)
  • Width from 320 to 1280 px — size scales with the square, so width matters most
  • 256, 128 or 64 colours, trading banding against size
  • Loop forever, or play through once
  • A preview and scrubber on the page, so you pick the range by eye
  • A progress bar, so you can see which frame it is on
  • Times past the end of the video are clamped back with an explanation
  • The video is never uploaded and no server is involved — it works offline

How to use

  1. Drop a video in (first making sure the browser can play it)
  2. Scrub the preview to the stretch you want and type those start and end times in
  3. Choose the frame rate, width and colour count
  4. Press Start, wait for the progress to finish, and download the GIF

FAQ

Why is the GIF bigger than the original video?
Because GIF barely compresses: every frame is a complete 256-colour bitmap and the only compression is weak LZW within a frame, while video formats store inter-frame differences (just "this block moved three pixels right"). Two seconds of 1080p can therefore become a 20 MB GIF. Three things help, in order of effect: halve the width (roughly a quarter of the size), shorten the range, drop the frame rate to 10 fps. Going from 256 to 128 colours saves about a tenth, the weakest of the three.
The GIF stutters and some frames repeat.
The usual cause is that a browser cannot always seek precisely: some formats (MP4 files without an index, certain MOV files) only seek to keyframes, so asking for second 3.2 returns the frame from second 3. The symptom is a few frames holding still. Converting the video to a standard H.264 MP4 first (most editors write an index) makes seeking accurate. Note that a frame rate below 8 fps looks choppy on its own — that is the setting, not a bug.
The video shows as a black rectangle with no error.
That means the browser cannot decode its codec. The usual suspects are HEVC / H.265 (what newer iPhones record by default) and AV1, and damaged files behave the same way. The tool says so in the preview area rather than showing you a progress bar that never moves. The fix: export the video as H.264 (AVC) MP4 from any player or editor, and drop that in.
Is the video uploaded?
No. Decoding uses the browser's own `<video>` element, frames are taken with canvas, and encoding is a local JS library — no network requests at all, and it works offline. What people drop in tends to be private footage: meeting recordings, family clips, a client's demo. None of it should pass through a server.

Related tools