Playcut v2 is coming MCP · Actor v2 · & much more
Free Tool

GIF Speed Changer

Speed up GIF playback or slow it down, usually without re-encoding a single pixel. One catch first: push a GIF too far and it plays slower. Chrome, Edge and Firefox show any frame delay of 10 ms or less at 100 ms, so a plain 5× speed-up on 40 ms frames stretches a 4.8-second loop to 12 seconds. This tool keeps every delay above that floor and tells you when it has to drop frames instead.

Drop a GIF here, or choose a fileRuns in your browser. Nothing is uploaded.

How to speed up a GIF (or slow it down)

Drop a GIF into the tool above, pick a speed, and download the result. Everything runs in this browser tab, so the file is never uploaded and nothing is stored on a server.

  1. Drop your GIF. The tool reads its frame count, delays and length straight from the file structure, without decoding any pixels.
  2. Choose a speed. Pick a preset from 0.25× to 4×, drag the slider anywhere from 0.1× to 5×, or switch to setting every frame to one delay in milliseconds. The before-and-after table updates as you move.
  3. Check the path, then run it. A green note means only the delays change. An amber note means this speed has to drop frames and re-encode. Press Change speed and download the new GIF.

To slow a GIF down, pick anything below 1×. Slowing down never needs a re-encode, because a GIF frame can wait up to 655.35 seconds, which is far more room than slowing down normally needs.

The tool accepts GIFs up to 100 MB with frames up to 2,073,600 pixels (1920 × 1080). The lossless path handles any number of frames. The re-encode path decodes every frame, so it is limited to 600 frames and about 512 MB of decoded pixels, and it tells you when a file is past that.

Why a faster GIF sometimes plays slower

A GIF stores each frame's delay as a whole number of hundredths of a second, in a two-byte field of that frame's Graphic Control Extension. That is the unit the W3C GIF89a specification defines, so every delay is a multiple of 10 ms.

Browsers do not honour the smallest values. Chromium's image decoder source treats any frame of 10 ms or less as 100 ms, and its comment says it follows Firefox, whose behaviour is discussed in Mozilla bug 232822. The same comment gives the reason: ads used zero delays to flash as fast as possible.

Take a GIF with 40 ms frames. At 2× every frame becomes 20 ms, which plays as written. At 5× each frame would be 8 ms, which is stored as one hundredth of a second and shown at 100 ms, so a 4.8-second loop takes 12 seconds. The faster setting makes it two and a half times slower.

So the practical ceiling is 20 ms per frame, or 50 frames per second. That follows from the 1/100 s unit plus the browser clamp; it is not a platform rule. Apps and system image viewers may time frames differently, so check a GIF where it will actually be seen.

Lossless speed change vs re-encoding

What the tool rewrites

On the lossless path the tool walks the file block by block and changes only the two delay bytes in each frame's control block. Palettes, compressed pixel data, transparency and the loop setting are copied byte for byte, so the output is the same size as the input and every frame is identical.

Delays are multiplied, not replaced, so a GIF with uneven timing keeps its rhythm: a long pause stays proportionally long. Rounding is carried from one frame to the next, so the total length lands within 10 ms of the exact target instead of drifting. A frame with no control block gets one added, which costs 8 bytes.

When it has to re-encode

A speed-up that would push any frame below 20 ms cannot be done by rewriting delays. Instead the tool keeps 1 frame in every 2 (or 3, or more), folds the dropped frames' time into the frame it keeps, and scales the result. The GIF ends up with fewer frames but plays at the speed you asked for.

A GIF with only a few short frames can run out of frames to drop. When a speed would leave a single frame, the tool refuses it rather than hand back a still image, and names the fastest speed that only changes the delays.

That path decodes every frame and encodes a new GIF with a 256-colour palette per frame, keeping transparency and the loop setting. Fewer frames usually means a smaller file, and the tool reports the real before-and-after size either way. The notes under the controls show which path a setting takes and the fastest speed that stays lossless for your file.

Picking a speed for reactions, loops and slow motion

Treat these as starting points rather than rules. A reaction GIF that feels sluggish often tightens up at 1.25× to 1.5× without looking sped up. A screen recording or process loop can usually take 2× to 4×, which turns a long demo into something people watch to the end. Once the timing lands, the GIF caption adder puts the punchline on the frames.

For slow motion, 0.5× doubles every delay, but the motion does not get smoother because no new frames are created. If the source has a low frame rate, slowing it down makes the steps between frames easier to see. For smooth slow motion, start from video and export it with the video to GIF converter at a higher frame rate.

Planning an animation from scratch? Work out the frames and timing first with the storyboard frame counter. Because every GIF delay is a multiple of 10 ms, 25 fps (40 ms) and 50 fps (20 ms) divide evenly, while 30 fps needs 33.3 ms frames that have to alternate between 30 and 40 ms.

Speed does not change the file size on the lossless path. If the GIF is too heavy for where it is going, the GIF file size reducer finds settings that fit a byte budget, and the GIF compressor explains what each compression setting costs.

What this tool does not do

  • It does not reverse a GIF or play it back and forth. Frames are often stored as changes over earlier frames, so reversing is never lossless, and it is not offered here.
  • It does not add in-between frames. Slowing down only lengthens the delays.
  • It does not resize, recolour or change the loop count of the GIF.
  • It accepts GIF files only, not animated WebP or APNG.

GIF speed changer FAQ

How do I speed up a GIF?

Drop it into the tool above, choose a preset such as 2× or drag the slider, and press Change speed. When every new delay stays at 20 ms or more, only the delays are rewritten, so quality and file size do not change. Past that point the tool keeps fewer frames, so the GIF still gets faster instead of slower, as long as at least two frames are left.

How do I slow down a GIF?

Pick a speed below 1×. At 0.5× every frame's delay doubles and the GIF lasts twice as long. Slowing down is always lossless here, because only the delay bytes change. No frames are added, so the motion looks steppier rather than smoother.

Why doesn't my GIF play faster after I speed it up?

Its frames have probably dropped below 20 ms. Chromium-based browsers and Firefox show any frame delay of 10 ms or less at 100 ms, so an over-sped GIF slows to a crawl. This tool never writes a delay below 20 ms; when a speed would need one, it drops frames instead and says so before you run it.

Does changing GIF speed lower the quality or change the file size?

Not on the lossless path. Pixels, palette and transparency are copied byte for byte and the file stays the same size, apart from 8 bytes for any frame that had no timing block. Only speed-ups past the floor re-encode, and the tool labels those before you run them and reports the new size afterwards.

What is the fastest speed a GIF can play at?

In practice, 20 ms per frame, which is 50 frames per second. GIF delays are stored in hundredths of a second, and Chrome, Edge and Firefox show 10 ms or less as 100 ms, so 20 ms is the shortest delay that plays as written. The ceiling comes from that unit plus browser behaviour, not from any platform rule.

Need the clip before you retime it?

Generate the source footage in Playcut's AI video generator, turn it into a GIF, then bring it back here to set the pace.

See the video generator