Change GIF Framerate
Change GIF framerate online. Adjust animation speed by setting custom FPS. Speed up or slow down any GIF file instantly in your browser.
Drop a GIF here or click to browse
Max 50 MB · GIF89a / GIF87a
About
GIF frame delay is stored in Graphics Control Extension blocks as a 16-bit unsigned integer in hundredths of a second. A delay of 10 equals 100 ms per frame, or 10 FPS. Most browsers clamp delays below 2 (i.e., 20 ms) to 100 ms, silently overriding the intended speed. This tool parses the full GIF89a binary, modifies every frame's delay field to match a target FPS, and re-encodes the file with correct LZW compression. No server upload occurs. The entire decode-modify-encode pipeline runs in a Web Worker inside your browser.
Incorrect frame timing produces stuttering or unintentionally fast playback across platforms. Email clients, messaging apps, and social media each enforce their own minimum delay thresholds. This tool lets you validate the actual per-frame delay in centiseconds and set a uniform rate that behaves predictably. It preserves transparency, disposal methods, and the original Netscape loop count. Note: re-encoding may slightly increase file size due to LZW dictionary reset boundaries. For GIFs exceeding 500 frames, expect processing times of several seconds.
Formulas
The GIF specification (GIF89a) stores frame timing as a 16-bit little-endian unsigned integer representing hundredths of a second. Converting a desired frames-per-second value to this delay unit:
Where delay is the value written to bytes 4-5 of each Graphics Control Extension block, and FPS is the target frames per second. The result is clamped: delay ≥ 2 to avoid browser-specific override behavior. Effective playback speed is then:
Where FPSeff = effective frames per second after rounding. Total animation duration for N frames:
Reference Data
| Target FPS | Delay (1/100s) | Delay (ms) | Use Case | Browser Safe |
|---|---|---|---|---|
| 1 | 100 | 1000 | Slideshow | Yes |
| 2 | 50 | 500 | Slow animation | Yes |
| 5 | 20 | 200 | Moderate pace | Yes |
| 8 | 12 | 120 | Standard cartoon | Yes |
| 10 | 10 | 100 | Common GIF default | Yes |
| 12 | 8 | 80 | Smooth loop | Yes |
| 15 | 7 | 70 | Video-like feel | Yes |
| 20 | 5 | 50 | Fast animation | Yes |
| 25 | 4 | 40 | Film-like | Yes |
| 30 | 3 | 30 | Smooth video | Yes |
| 33 | 3 | 30 | Near-realtime | Yes |
| 50 | 2 | 20 | Maximum safe speed | Threshold |
| 100 | 1 | 10 | Extremely fast | No - clamped to 100ms |
| 0 (delay=0) | 0 | 0 | As-fast-as-possible | No - clamped to 100ms |