setpts is the entire speed change
Underneath the preset menu there is one filter doing the work: setpts=PTS/N, where N is the multiplier you picked. Every frame carries a presentation timestamp, and dividing those timestamps by a number greater than one squeezes them together so the animation plays faster. Divide by a number smaller than one and they spread apart instead.
Nothing is added and nothing is thrown away. A GIF with forty frames still has forty frames afterwards; they are simply displayed on a different schedule. That is the honest answer to the question people usually ask next, which is whether speeding a GIF up makes it lighter. It does not, because the frames are the file.
The output is also explicitly told to loop forever rather than being left to the muxer’s own default, so a retimed GIF keeps looping in a chat window or a forum post. The one thing that does not carry over is a source set to play a fixed number of times, because every result here comes back looping endlessly.
Seven presets, and why the list starts at a quarter
The menu runs 0.25×, 0.5×, 0.75×, 1.5×, 2×, 3× and 4×, with double speed selected by default. There is no 1×, because an identity speed change would be a re-encode that produces no visible difference, and offering it would only cost people a pointless round trip.
Which end you need usually follows the source. Reaction clips and screen recordings tend to drag, and 1.5× or 2× is enough to fix the pacing without making the motion look comical. Sports, pets and anything with a fast gesture in it go the other way: 0.5× gives you a clip you can actually read, and 0.25× turns a half-second moment into a deliberate one.
Retiming a GIF from drop to download
- Drop your GIF on the panel or press Choose a file. GIF is the only accepted extension here.
- Open Speed and choose a multiplier. Values below 1× stretch the animation out, values above 1× compress it.
- Press GIF Speed Changer and watch the progress bar. A short reaction GIF finishes quickly; a long, large one takes real time, because the encoder runs on a single thread.
- Download the new file, then check the size line the panel prints above the download button. It compares the original with the result and tells you which way the size moved.
The palette pass that runs after the retiming
GIF can only show 256 colours at a time, so any GIF that comes out of ffmpeg needs a colour table built for it. Rather than accepting the generic built-in palette, this tool uses the technique Compress GIF and Convert MP4 to GIF also rely on: the retimed stream is split in two, one branch analyses the frames and generates a palette tuned to them, and the other branch maps every pixel onto that palette. It is one command, not two runs.
There is a subtlety worth knowing here. The format allows each frame to carry its own local colour table, so a single animation can hold well over 256 distinct colours across its length. The palette stage builds one table for the whole thing, so a GIF built that way genuinely loses colour accuracy the first time it passes through, no matter what speed you chose. A GIF that already uses one shared table comes out essentially untouched.
If the retimed file lands heavier than you wanted, that is the moment to send it to the compression tool, whose three levers are frame rate, pixel width and the number of colours in the palette.
Frame delays have a floor that the fast presets run into
GIF stores each frame’s delay in hundredths of a second, and that unit is the whole resolution the format offers. A frame shown for 8 hundredths becomes 2 at quadruple speed, and there is nowhere finer to round to. Many players also refuse to go below a small minimum delay and quietly substitute a slower one, which is why a heavily sped-up GIF can play back slower than the multiplier promised.
The practical consequence is that speeding up is not linear at the top end. A GIF that already had generous delays between few frames gets choppy rather than fast. If you are chasing a genuinely snappy loop, Convert GIF to MP4 sidesteps the problem entirely, since video timing is not quantised into hundredths of a second and the file will usually be much smaller as well.
A wider range than the video speed tool can offer
Change Video Speed stops at half speed and double speed. That is not caution, it is a constraint of the audio filter it uses: the tempo filter accepts factors between 0.5 and 2.0 per instance, and staying inside that range means a single clean pass over the sound.
A GIF has no audio track at all, so nothing here has to stay in sync with anything. That is why this page can offer quarter speed and quadruple speed while its video counterpart cannot. It is also why the command is so much shorter: no stream mapping, no tempo filter, just timestamps and a palette. If you need to crop the result as well, Crop GIF works on the finished file with a draggable box.