I have a short 60 fps video which I'd like to turn into a GIF file. I run
ffmpeg -i foo.flv foo.gif
and it produces a GIF file. Great!
The only problem is that the motion in the produced GIF video is janky and uneven. If I use another tool, I can see that FFmpeg has created a video where the first frame is 10 ms long, the second 20 ms, the third 20 ms, and then it repeats like that: 10 ms, 20 ms, 20 ms. If I use another tool to smooth it out to an even 16 ms for each frame (without changing the frame contents), the result looks beautiful.
Why is FFmpeg doing this? How can I ask it to write a GIF file that requests an even 16 ms per frame instead, so that I don't need to use a second tool?
I have now seen this related question asking whether 60 fps GIF videos even exist, but it doesn't address the question of how to ask FFmpeg to change its behavior. Additionally, it raises a new question: if 16ms is not a time that GIF can represent, what is the other tool I'm using doing, and why does it work well?