How to change a GIF's speed
- Drop a GIF into the box above, or click it to choose one. The page shows how long one play lasts, how long each frame stays on screen and roughly how many frames per second that is.
- Choose Speed and pick a preset (0.25× to 4×) or type a percentage: 200 is twice as fast, 50 is half speed. Or choose Total length and type the seconds one play should last, or Same delay for every frame and type the milliseconds.
- Read the line under the options. It says what the new GIF will do before you press anything, including when a big speed-up needs frames to be skipped.
- Press Change speed. The original and the new GIF play side by side; Play both from the start restarts them together so you can compare.
- Download it. The file name carries the speed, for example
cat-2x.giforloader-40ms.gif.
The 20 millisecond floor
A GIF does not store a frame rate. Each frame carries its own delay, counted in hundredths of a second, so the shortest delay you can write is 10 ms and the next is 20 ms. Browsers do not play the very short ones as written. We made a 40-frame test GIF in eight versions, each with a different delay on every frame, set it to play once and watched how long it took in Chrome 156 and Microsoft Edge:
| Delay stored in each frame | Time per frame on screen | One play of 40 frames |
|---|---|---|
| 0 | 100 ms | 3.9 s |
| 10 ms | 100 ms | 3.9 s |
| 20 ms | 20 ms | 0.8 s |
| 30 ms | 30 ms | 1.2 s |
| 40 ms | 40 ms | 1.6 s |
| 50 ms | 50 ms | 2.0 s |
| 100 ms | 100 ms | 3.9 s |
Both browsers behaved the same way. A delay of 0 or 10 ms is treated as 100 ms, so the "fastest" setting plays five times slower than 20 ms. That has two consequences:
- A GIF can change frames at most 50 times a second. Any speed-up that would need a frame to last less than 20 ms makes the GIF slower, not faster, if the delay is simply written into the file.
- A GIF saved with 0 or 10 ms delays already plays slowly. Some apps write those values to mean "as fast as possible". When you drop such a file here, the page says how many frames are stored that way and calculates everything from the time you actually see.
When keeping every frame is not enough
To stay above the floor without changing the pictures, a speed changer can only lower each delay to 20 ms and stop there. We ran that on five real GIFs and compared it with what was asked:
| GIF | Each frame now | Asked for | Every frame kept | With frames skipped |
|---|---|---|---|---|
| Video clip, 40 frames | 50 ms | 4× | 2.5× | 4× (20 frames) |
| Screen recording, 60 frames | 60 ms | 4× | 3× | 4× (30 frames) |
| Emoji, 24 frames | 60 ms | 8× | 3× | 8× (9 frames) |
| Interface demo, 40 frames | 80 ms | 8× | 4× | 8× (20 frames) |
| Photo slideshow, 30 frames | 80 ms | 8× | 4× | 8× (15 frames) |
So with Skip frames ticked (the default), a speed-up that would go below 20 ms keeps fewer frames, spread evenly through the animation, and gives each one at least 20 ms. The total time comes out right to the hundredth of a second. In Chrome, one play of the video clip took about 2 seconds originally, 0.8 seconds at "4×" with every frame kept, and 0.5 seconds with frames skipped. Untick the box if you would rather keep every frame and accept the slower result; the page tells you how fast that will be.
What changes in the file
When every frame is kept, only the delay numbers are rewritten. We checked 45 results across eight GIFs, including frames saved with no delay at all and an old GIF87a file: every byte apart from the delays was identical to the original, every frame matched pixel for pixel, and the loop setting was untouched.
When frames are skipped, the GIF has to be rebuilt, because most animated GIFs store each frame as just the part that changed. The page asks your browser's own GIF decoder for the full picture of each frame it keeps, writes those pictures back with their exact colours, and lets Gifsicle shrink the result again. In our tests the frames in the new GIF matched the original frames pixel for pixel, and files got smaller: the 2.2 MB video clip became 1.1 MB at 4× and 670 KB at 8×. If two kept frames happen to look identical, they are merged into one with their times added together, which changes nothing on screen.
Speed, length or one delay for every frame
- Speed multiplies every frame's time by the same factor, so the rhythm of the animation stays the same; a pause held on one frame stays proportionally longer than the others.
- Total length does the same, but you type the result instead of the factor: useful when a GIF has to fit a slot, such as finishing in 3 seconds.
- Same delay for every frame throws away the original rhythm and gives every frame the same time. It is the quickest fix for a GIF that plays slowly because its frames were saved at 0 or 10 ms: try 20 to 40 ms.
GIF delays can only be whole hundredths of a second, so a 100 ms frame made 3× faster cannot become 33.3 ms. The page rounds as it goes along, giving some frames 30 ms and others 40 ms, so the total still lands where it should instead of drifting.
Related
To change how many times the GIF repeats, use GIF Loop Changer. To make it smaller in bytes, Compress GIF; in pixels, Resize GIF. If a GIF has stopped moving altogether, why is my GIF not moving walks through the usual causes.