Pick a moment from any video and turn it into a looping GIF. Trim, resize and tune the frame rate, with a live size estimate before you export.
Each GIF frame is a picture of at most 256 colours, squeezed with LZW, a method built for flat graphics, not camera noise. That's why a few seconds of video can turn into megabytes, and why small changes make a big difference.
Video can show millions of colours; a GIF frame can hold at most 256. Smooth gradients, skies, skin, shadows, get squeezed into a few steps. Try it on this gradient.
Steps are obvious in any smooth area. Use this only for cartoons or screen recordings with flat colours.
Typical sizes for a 3-second, 480 px clip saved four ways. The GIF and WebM cards switch to measured values for your clip once it is encoded and recorded below.
Your GIF (≈ 2.6 MB) checked against typical upload limits.
The first … frames of your clip are encoded four ways by the same LZW encoder, at your colour count. Sizes are real bytes; quality is PSNR against the captured frames (higher is closer; above about 35 dB differences are hard to see).
A GIF89a file is a header, a screen descriptor, an optional colour table, then a run of blocks: an extension saying how long to show the next image, the image itself, and so on. Click a block to see its bytes.
Every block type in the format, with the ones this page writes marked. Limits come from the field sizes in the 1989 specification.
47 49 46 38 39 61Headerwritten by this pageSignature and version, “GIF89a” or “GIF87a”.(7 bytes)Logical screen descriptorwritten by this pageCanvas size, global table flag and size, background colour.3 × 2ⁿGlobal colour tablewritten by this pageUp to 256 RGB entries shared by all frames.21 FF 0BApplication extensionwritten by this pageNETSCAPE2.0 sub-block 1 = loop count; also used for XMP metadata.21 F9 04Graphic control extensionwritten by this pageDelay, disposal method (0-3), transparency for the next image.2CImage descriptorwritten by this pageFrame rectangle on the canvas, local table flag, interlace flag.3 × 2ⁿLocal colour tablewritten by this pageOptional palette for a single frame.(min code + sub-blocks)Image datawritten by this pageLZW codes of 3-12 bits packed into ≤255-byte sub-blocks.21 FEComment extensionwritten by this pageFree text, ignored by decoders.21 01Plain text extensionwritten by this pageText rendered on a grid: almost no decoder supports it.3BTrailerwritten by this pageEnd of file.Prepare the clip before you make the GIF, or finish it off afterwards.