mp4 to gif

Browser-Only · No Upload Needed

Upload & Configure

Drop your MP4 here

or click to browse — MP4 only, up to 500 MB

⏱ Duration: 📹 📄


Video ends at — clip

Higher FPS = smoother animation but larger file

High quality produces better colors but takes longer

frames — the resulting GIF may be large (>5 MB). Consider reducing duration, FPS, or width.

Estimated frames · Output:

Loading GIF library
Extracting frames (/)
Encoding GIF

Your GIF is Ready!

Generated GIF
Dimensions
File Size
Frame Rate
Frames
Download GIF

How It Works

  1. 1 Upload your MP4 file — it never leaves your browser, 100% private.
  2. 2 Configure the clip range, frame rate, output size, and quality preset.
  3. 3 Convert — each frame is drawn to an HTML5 canvas and encoded into a GIF locally using gif.js.
  4. 4 Download your GIF — no watermarks, no registration, no limits.

About GIF Format

GIF supports up to 256 colors per frame, making it ideal for short animations, memes, and previews. Plays automatically with no click required.

Auto-plays everywhere (email, Slack, social)
Infinite loop by default
No codec or player needed
No audio — GIFs are always silent
256-color limit per frame

Tips for Best Results

Keep clips short. 5–10 seconds at 10 fps makes compact, shareable GIFs.

📐

480 px width is the sweet spot between quality and file size for most uses.

🎨

High quality works best for text, logos, and flat-color animations.

Low quality / 5 fps for quick reactions — fast encode and tiny file.

Estimated File Sizes

Settings ~Size
320px · 5fps · 5s~0.3 MB
480px · 10fps · 5s~1–2 MB
480px · 10fps · 10s~2–4 MB
640px · 15fps · 10s~6–10 MB

From video frames to a palette-limited GIF

The converter loads your MP4 into a hidden HTML5 video element and a matching canvas sized to your chosen output width, with the height scaled to preserve the aspect ratio. It then seeks the video to each successive timestamp across your clip range and draws that frame onto the canvas, capturing the pixels. At 10 frames per second, a six-second clip means 60 seek-and-draw operations.

Each captured frame is handed to the gif.js encoder, which runs in a web worker so the page stays responsive. The GIF format allows only 256 colours per frame, so the encoder must quantise millions of possible colours down to a palette. That is what the quality preset controls: the high setting searches far more carefully for a representative palette and takes considerably longer, while the low setting works quickly with a coarser approximation.

When every frame has been encoded, the worker assembles them into a single looping GIF, which becomes a downloadable file in your browser.

Worked example: a six-second demo clip

Say you want to show a six-second interaction that begins 12 seconds into a screen recording. Set the start time to 12 and the duration to 6. Choose 10 frames per second, which gives 60 frames in total, and an output width of 480 pixels. For a screen recording containing text and flat interface colours, the high quality preset is worth the wait because it preserves sharp edges and avoids colour banding.

The converter captures 60 frames, encodes each against a 256-colour palette and stitches them into one looping file. The result plays for six seconds and loops continuously.

If the file comes out larger than you want, the arithmetic is straightforward. Halving the frame rate to 5 fps halves the frame count to 30 and roughly halves the size. Dropping the width from 480 to 320 pixels cuts the pixel area to about 44 percent, since both dimensions shrink. Trimming the duration to three seconds halves it again. Applying all three together can reduce the output by an order of magnitude.

Keeping GIFs small and sharp

GIF is an old format and compresses poorly, so file size is the main constraint. Size scales with frame count multiplied by pixel area, which means duration, frame rate and width all matter, and width matters most because it affects two dimensions at once. A width of 480 pixels is the usual sweet spot for chat and documentation.

Match the quality preset to the content. High quality suits screen recordings, logos, text and flat-colour animation, where a poorly chosen palette produces visible banding. Low quality at 5 frames per second is fine for short reaction clips from live-action video, where motion blur hides the coarser palette and the encode finishes quickly.

Be aware that GIF carries no audio, so any sound in the source is lost. Long or high-resolution clips take real time to process because the work runs on your own machine, and progress is shown throughout. If a clip is genuinely long, a short MP4 or WebM will look better and weigh less than a GIF ever can.

Frequently Asked Questions

The clip duration is capped at 30 seconds. That limit exists because GIF compresses poorly and file size grows with every frame, so a 30-second clip at a high frame rate produces an unwieldy file. For most purposes, three to eight seconds gives a GIF that loops well and stays a sensible size.
Size scales with the number of frames multiplied by the pixel area of each one. Reduce the frame rate, shorten the clip, or drop the output width, which helps most because it shrinks both dimensions. Moving from 640 to 320 pixels wide cuts the pixel count to a quarter. The low quality preset also helps.
No. The GIF format has no audio track at all, so any sound in the source MP4 is discarded during conversion. If sound matters, keep the clip as an MP4 or WebM video instead. Most platforms that accept GIFs also accept short silent videos, which look better and are smaller.
Use 10 frames per second as a starting point; it looks smooth enough for most content while keeping the file manageable. Choose 15 or 20 for fast motion where 10 looks jerky, and 5 for slide-like or slow content where a compact file matters more than fluidity.
No. The video is read locally, frames are drawn to a canvas in your browser, and the gif.js encoder runs in a web worker on your own machine. The only network request is fetching the encoder library itself. Your footage never leaves the device, so private recordings stay private.