Adjust GIF Frame Rate, Why Is It So Problematic?


Apr 26, 2017
I have a 160 x 80 px add-on display that supports GIFs, however is limited to 18 FPS. I found some free GIFs, just an example, and cannot get them to fall below these 18 FPS. Reduced their resolution to 160 x 80, even converted them to mp4 video and manually set the frame rate to 15, 12, 10. The video itself reports its correct smaller FPS when rendered this way, however no matter what I tried converting it back to GIF, frame rates go to 100 (as the original). I tried Blender (there is an add-on for rendering end GIFs), tried online services (at least 3), tried Android apps just to see if it will make a difference. The end GIF always stays at 100 FPS even if I set frame rate to i.e. 15, 12 or else in the rendering settings.

Why is that, anyone knows? Is there a way to actually decrease the FPS by dropping frames or changing frame latencies while keeping the duration relatively the same? I tried this in GIMP (free alternative to Photoshop) but it didn't do anything.

Is frame rate linked to GIF speed and if so, why so many programs have options for changing the former while claiming and keeping the GIF duration the same? Finally, anyone knows of a way to get some of the above sample GIFS to less than 18 FPS?

Many thanks.
Just an update as the above really got me confused. I managed to fix it and the way they stated it in the software was wrong. It was not about FPS, it is about maximum frames allowed, which is 18. It must be short, that's it. Found it by chance, trying different scenarios...
If you are comfortable with a command-line tool on Linux (or MacOS I think) then give gifsicle a try.

It allows you to take an existing GIF with animation, unoptimize and dump the individual frames, then reassemble the animation with a custom delay between frames.
Something like this would set a delay of 16 centi-seconds (1/100th of a second) between subsequent frames:

gifsicle --unoptimize <original.gif >temp.gif

# --loopcount sets the GIF animation to loop forever
gifsicle --delay 16 --loopcount --optimize <temp.gif >final.gif