Free tool · runs in your browser

Turn a clip into a GIF emote

Twitch allows 1 MB and 60 frames for an animated emote — and Discord allows about a quarter of that. Pick a moment from a clip, crop it square, and this walks a compression ladder until the file actually fits. Nothing is uploaded.

Drop an MP4 or WebM

or

Nothing is uploaded. Encoding runs on your machine.

Try it

Why the GIF is the hard part of an animated emote

GIF caps every frame at a 256-colour palette and has no real transparency — one palette index is simply declared invisible. File size scales with frame count × palette size × pixel area, and there is no quality knob. You buy size back by throwing away frames, colours or length.

What goes first, and why

  1. Frame rate. 24fps → 15 → 12. At 28px the difference is close to invisible, and it halves the data.
  2. Palette. 128 → 64 → 32 colours. Flat emote art survives this well; only soft 3D shading needs the full 256.
  3. Length. Last, because shortening the clip changes what the emote is rather than how cleanly it is stored.

The tool walks that ladder automatically and reports which step it had to take, so you know what was sacrificed.

Platform budgets

PlatformCapMax frames
Twitch1 MB60
Discord256 KB60
Slack128 KB50

Discord is the one that surprises people: an animation that sails through Twitch is often rejected by Discord, which allows roughly a quarter of the bytes on a larger canvas.

Getting a loop that compresses well

  • Small motion, big still frame. GIF only saves space where consecutive frames are identical, so a blink or a bounce compresses far better than a pan.
  • Keep it short. Under two seconds is plenty; chat repeats it forever.
  • Seamless loop. First and last frame should match or the seam becomes irritating within a few cycles.

Questions

Does this upload my clip?

No. The video is loaded from a local object URL, decoded by the browser, and every frame is captured and encoded on your machine.

Can I use a Twitch clip directly?

Not by pasting a URL — the browser cannot read cross-origin clips. Download the clip first, then drop the file here.

Why is my GIF still too big?

Usually because the motion covers the whole frame. Crop tighter on the moving element, or pick a moment where most of the frame holds still.