Bug 395265

Summary: Rendering the same animation at 48 fps makes the animation play faster and smoother than rendering at 60 fps
Product: [Applications] krita Reporter: starsynapse
Component: AnimationAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED NOT A BUG    
Severity: normal CC: ghevan, halla
Priority: NOR    
Version: 4.0.3   
Target Milestone: ---   
Platform: Other   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:
Attachments: Contains 2 gifs of the same animation (one rendered at 48fps and the other at 60fps) and the logs of each render

Description starsynapse 2018-06-12 05:58:18 UTC
Created attachment 113221 [details]
Contains 2 gifs of the same animation (one rendered at 48fps and the other at 60fps) and the logs of each render

When I render an animation to a gif at 48 fps the animation is fast and smooth. No problems and plays as expected. But when I render at 60 fps the animation compared to the 48 fps gif is slower and not as smooth. The 60 fps gif is noticeably slower and very choppy. The 60 fps gif should play faster than the 48 fps gif since it's playing the same amount of frames at a faster rate, but it does not.
Comment 1 Halla Rempt 2018-06-12 06:49:42 UTC
I'm sorry, but there isn't much we can do about that -- it's ffmpeg that creates the animation from the frames. You might want to do that manually and play with ffmpeg's options.
Comment 2 vanyossi 2018-06-12 19:11:29 UTC
That is a limitation on gif decoders, most won't playback at more than 50fps! You can see the behaviour here https://web.archive.org/web/20170201034945/http://blog.fenrir-inc.com/us/2012/02/theyre-different-how-to-match-the-animation-rate-of-gif-files-accross-browsers.html

My suggestion would be to render the frames to images and apply a more complex ffmpeg filter. If all you want is double the speed render the animation frames as images and try:

Create a palette
ffmpeg -r 60 -start_number 0 -i myanim_%04d.png -vf palettegen -y mypalette.png

Make gif
ffmpeg -r 60 -i myanim_%04d.png -i mypalette.png  -lavfi "fps=30[x];[x][1:v]paletteuse" -y output.gif
Comment 3 starsynapse 2018-06-13 01:42:55 UTC
This information on gif decoder limitations "resolves" my issue. Thank you :3