What is a Video to GIF?
A GIF is a sequence of images with a delay between them, each drawn from a palette of at most 256 colours. There is no video codec in it and no inter-frame compression of the modern kind — every frame is stored more or less whole. That single fact explains almost everything about GIFs: why they are large, why they band in gradients, and why a three-second clip can weigh more than a minute of MP4.
The 256-colour limit is the visible one. A photograph or a video frame contains thousands of distinct colours, so an encoder has to pick the 256 that represent the frame best and map every pixel onto them. Where the frame is a smooth gradient — a sky, a shadow on skin — that mapping produces visible banding. Where there is film grain or noise, the encoder spends most of its palette on noise, and the result shimmers from frame to frame.
Encoding a GIF therefore means choosing a palette, then writing each sampled frame against it. This tool builds one shared palette from a handful of frames spread across the clip, so the colours stay stable rather than flickering, and then writes the frames in a second pass. Frame rate, width and palette size are the three dials that decide the file size, and they multiply: halving the width quarters the pixels, doubling the frame rate doubles the frames.
How to make a GIF from a video
- Choose the video. The preview plays it so you can find the moment you want, and the file is never uploaded.
- Scrub to where the GIF should begin, read the time off the player, and type it into the start box.
- Set the length. Two to four seconds is the sweet spot; past about ten the file gets unwieldy.
- Choose a width. 320 to 480 px is what a chat window and a blog post actually display.
- Pick a frame rate and a palette. 12 fps with 128 colours is a good default; drop both if the file is too large.
- Press Build. Each frame is decoded twice — once to choose the colours, once to write it — and the preview appears when the encoder finishes.
Video to GIF limits and rules
| Item | Limit |
|---|---|
| Maximum frames | 300 per GIF, which is 25 seconds at 12 fps |
| Palette | 64, 128 or 256 colours — 256 is the format's own ceiling |
| Palette strategy | One global palette built from six sampled frames, so colours do not flicker |
| Frame rates | 8, 12, 15 and 24 fps |
| Widths | 240, 320, 480 or 640 px, with the height following the aspect ratio |
| Looping | Loop forever or play once |
| Audio | Not included — the GIF format has no audio track at all |
| Transparency | Not preserved; video frames are opaque |
| Frame colours | Every frame can only use colours that are in the shared palette |
| Uploading | None — decoding and encoding both happen in the page |
When to use it
- Making a reaction GIF from a few seconds of a longer clip.
- Turning a short screen recording into something that plays inline in documentation or a README.
- Producing a preview animation of a UI animation for a design review, where autoplay matters more than fidelity.
- Cutting a highlight from a video to paste into a chat, where only GIF and short video are accepted.
Is it private?
Nothing is uploaded. The video is decoded by your browser, sampled onto a canvas in this page, and encoded by a small GIF library loaded here, so the clip and every frame derived from it stay in memory on your machine. There is no server step to audit and no stored copy; closing the tab clears everything.
Frequently asked questions
Because a GIF stores each frame whole, with no inter-frame compression. Some video formats only store what changed between frames, which is why a minute of video can be smaller than five seconds of GIF. The levers that actually help are width, frame rate, palette size and length — in roughly that order of impact. Cutting the length is free and usually the answer.
Because 256 colours is not many. Banding appears where the original had smooth gradients and there are not enough palette entries to step through them; grain and shimmer appear when the encoder spends palette entries on noise instead of subject. Choosing an easier clip — a flat background, a face rather than a landscape — helps more than any setting. Dropping to 64 colours makes it worse, not better.
Up to 300 frames, which is 25 seconds at 12 fps and 12 seconds at 24 fps. The cap exists because every frame has to be decoded from the video and quantised, and a browser tab that tries to do a thousand frames simply stops responding. If you need something longer, a looping video file is the right format anyway.
Yes, and it cannot be kept — the GIF format has no audio track, which is why every GIF is silent by definition. If sound matters, use the video compressor instead and send a small MP4 or WebM, which chats also accept and which will be far smaller.
Because the frames are decoded twice. The first pass samples six frames across the clip to choose the colour palette; the second seeks back through the video and writes each frame. Seeking is the slow part — a browser has to decode from the nearest keyframe every time — which is also why very long videos produce GIFs slowly.
No. The encoding library runs inside the page, the video is decoded by your own browser, and the resulting GIF is assembled in memory and handed straight to the download. There is no request in the process that contains your video, which you can confirm by watching the network tab.
Related tools
Written and maintained by Md. Nur Hossain Repon.