为什么这个gif似乎持续时间为0毫秒?如何找到真实的持续时间?

8

我正在尝试从动画 gif 文件中获取持续时间和帧数,以便计算 gif 的平均帧率,然后将其转换为视频。

最近在我的测试中遇到了这个图像,它似乎让所有人都相信它的持续时间为 0 毫秒。

enter image description here

为什么?我如何找到真正的持续时间?

到目前为止,我已经尝试过:

  • exiftool

    exiftool -v image.gif

  • ImageMagick

    identify -verbose -format "Frame %s: %Tcs\n" image.gif

  • 这个 Python 脚本 使用了 Python 图像处理库

  • 还有一些用于制作 gif 动画的其他程序,例如 Microsoft Gif Animator
1个回答

8
这个GIF动画的实际持续时间确实是零秒。它有41帧,每一帧的持续时间都为零。(它还有一个格式不正确的XMP记录,但这在这里是不相关的。)
无限的帧速率显然非常愚蠢,你的浏览器没有理由尝试显示它。事实上,您的浏览器会减慢像这样的GIF动画的帧速率,以便它们可以合理地显示,而不会占用您的处理器或引起癫痫发作。
没有具体的标准行为,但通常任何每帧延迟小于0.05或0.06秒的GIF都可能被Web浏览器放慢。
参考资料:

http://blogs.msdn.com/b/ieinternals/archive/2010/06/08/animated-gifs-slow-down-to-under-20-frames-per-second.aspx

http://forums.mozillazine.org/viewtopic.php?t=108528


1
太好了。那么为了让视频看起来“正确”(即与在浏览器中显示的基本相同),典型的行为是默认为10fps。谢谢! - user707053

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接