What FPS Is a GIF? The Possible Values
A GIF does not store a frame rate. Each frame stores a delay in hundredths of a second (centiseconds), and the frame rate is 100 ÷ delay. These are the exact values:
| Delay per frame | Frame rate | Notes |
|---|---|---|
| 0 or 1 cs | 10 fps in practice | Browsers slow these to 10 cs |
| 2 cs | 50 fps | Fastest rate browsers honor |
| 3 cs | 33.3 fps | Mix 3, 3, 4 cs for an exact 30 fps average |
| 4 cs | 25 fps | Mix twenty 4 cs and four 5 cs frames per second for exactly 24 fps |
| 5 cs | 20 fps | Smooth for most motion |
| 10 cs | 10 fps | Common default; used by the converter on this page |
| 20 cs | 5 fps | Slideshows and step-by-step demos |
So a GIF cannot run at 60 fps: 1/60 s is 1.67 cs, and delays under 2 cs are slowed to 10 cs.
What Is GIF Frame Rate?
FPS (frames per second) is the number of individual images displayed each second in an animation. Unlike video standards (24/30/60 fps), GIF frame rates are flexible — each frame can have its own delay value. Typical GIF frame rates range from 5 to 20 fps, with 10 fps being the most common default.
The GIF specification stores frame timing as a delay in centiseconds (hundredths of a second). For example, 10 fps uses a 10-centisecond delay between frames, while 20 fps uses a 5-centisecond delay. This per-frame timing is stored in the Graphics Control Extension block of each frame.
The Core Tradeoff: Smoothness vs File Size
The relationship between FPS and file size is approximately linear: doubling the frame rate roughly doubles the number of frames, which roughly doubles the file size. This makes FPS the second most impactful setting after resolution for controlling GIF size. Frame rate is one of several levers; see how to reduce GIF file size for the others.
| FPS | Frames (5 sec) | Approx Size (480px) | Motion Quality |
|---|---|---|---|
| 5 fps | 25 | ~0.8 MB | Choppy, slideshow |
| 8 fps | 40 | ~1.3 MB | Noticeable steps |
| 10 fps | 50 | ~1.6 MB | Good balance |
| 15 fps | 75 | ~2.5 MB | Smooth |
| 20 fps | 100 | ~3.3 MB | Near-video |
| 30 fps | 150 | ~5 MB | Video-smooth (overkill) |
FPS Recommendations by Content Type
| Content Type | Recommended FPS | Why |
|---|---|---|
| Simple logo animation | 5–8 fps | Few elements moving, smoothness not critical |
| Screen recording / UI demo | 8–12 fps | Cursor movement needs some fluidity |
| Standard web GIF / meme | 10–12 fps | Best balance of quality and size |
| Social media post | 12–15 fps | Slightly smoother for attention |
| Fast-action / sports clip | 15–20 fps | Fast motion needs more frames |
| Never recommended | 24–30 fps | Massive files, no real benefit over 20 fps |
Rule of thumb: Start at 10 fps. If the motion looks too choppy, try 12 or 15. If the file is too large, drop to 8. Going above 20 fps has diminishing returns — file sizes keep growing linearly but visual improvement becomes negligible.
How GIF Frame Delays Work
The GIF format stores timing as a delay per frame measured in centiseconds (1/100th of a second):
- 10 fps = 10 centisecond delay (100 ms between frames)
- 20 fps = 5 centisecond delay (50 ms between frames)
- 50 fps = 2 centisecond delay (20 ms — minimum practical)
Browsers handle very short delays inconsistently. Chrome, Firefox and Safari treat delays below 2 centiseconds as 10 centiseconds, so such GIFs play at 10 fps regardless of the intended speed. Keep delays at 2 centiseconds (50 fps) or more; 3 or more is safest for older viewers.
Speed Control: Faster and Slower GIFs
You can control perceived speed independently from frame rate:
- 2x speed: halves the PTS (presentation timestamp) values, making the clip play twice as fast while keeping the original frame count. The GIF appears snappy and energetic.
- 0.5x speed: doubles the PTS values, creating a slow-motion effect. Works best with higher FPS sources (15+ fps) so the slow-down still looks smooth.
In FFmpeg, use the setpts filter: setpts=0.5*PTS for 2x speed, setpts=2*PTS for half speed. Combine with appropriate FPS settings for the best result. Our guide to high quality GIF settings explains how width, colors and dithering change the result.
Practical File Size Examples
The same 5-second video clip at 480px width, 256 colors, Sierra2 dithering:
| FPS | Frames | Approx File Size | vs 10 fps |
|---|---|---|---|
| 8 fps | 40 | ~1.3 MB | -20% |
| 10 fps | 50 | ~1.6 MB | baseline |
| 15 fps | 75 | ~2.5 MB | +50% |
| 20 fps | 100 | ~3.3 MB | +100% |
| 30 fps | 150 | ~5.0 MB | +200% |
How to Change or Increase a GIF’s Frame Rate
- New GIF from video: set the rate when you create it. In FFmpeg, change the
fps=10filter, for example tofps=15. The converter on this page uses 10 fps. - Existing GIF, same frames: change the delay.
gifsicle --delay=5 input.gif -o output.gifsets every frame to 5 cs (20 fps). The GIF plays faster but is not smoother. - Existing GIF, smoother motion: new in-between frames have to be invented. FFmpeg’s
minterpolatefilter can do this, but results on 256-color GIFs are often blurry. Re-creating the GIF from the original video at a higher fps works better. - Check a GIF’s frame rate:
magick identify -format "%T\n" input.gifprints each frame’s delay in centiseconds; 100 ÷ delay gives the fps.