gpt4 book ai didi

python - Gif 帧持续时间似乎比预期慢

转载 作者:行者123 更新时间:2023-12-02 02:34:53 25 4
gpt4 key购买 nike

我正在使用枕头图像库创建 GIF。我遇到了一个问题,我试图以尽可能最小的帧持续时间使某些帧闪烁得非常快,但是当我将帧的持续时间设置为 1(可能的最低持续时间,GIF 的持续时间为 100) ,实际上它的持续时间似乎比预期的要长。

我用一个简单的 Image.save() 保存 gif。 ( GIF format ) 命令类似于以下内容:

# durations are actually in milliseconds in the pillow library, but
# they translate to 100ths of a second (1/10 of the value input here)
durations = [650, 10, 900, 750, 10, 800, 10, ... ]
my_gif.save(filename, format='GIF', save_all=True, duration=durations, loop=0, disposal=2)

我不确定这个问题是特定于枕头库还是只是更普遍的 GIF 格式。但我注意到以下几点:

  • GIF 在视觉上看起来比预期慢
  • 当我将生成的 GIF 加载到 GIF 编辑工具(例如 EZGif.com)中时,它报告帧持续时间符合预期 - “闪烁帧”的持续时间为 1,这是我使用的帧持续时间保存文件。
  • 当我使用 EZGif 加速 GIF 时,奇怪的是,EZGif 生成的 GIF 的“加速”版本使用帧持续时间 2 而不是 1 作为闪烁帧,但是视觉上看起来播放速度更快,更接近我真正想要发生的情况。

   原始图像       “加速”图像

加载到 EZGif 时报告的每帧持续时间

Original Image  |  Sped Up Image

65 32
1 2
90 45
1 2
75 37
1 2
80 40
1 2
4 2
1 2
114 56
1 2
35 17
1 2
100 50
1 2
1 2
1 2
20 10
1 2
250 125
1 2

问题...

有人可以帮忙解释一下这种看似差异的原因吗?这是GIF格式的工作原理,还是枕头图像库的问题?如何生成具有更快“闪烁”效果的 GIF,就像我希望的那样?

最佳答案

经过进一步研究,这似乎是不同浏览器和平台上 gif 渲染的一个已知问题。虽然 GIF 规范表明 GIF 支持高达 100fps,但实际上,大多数现代浏览器仅支持最大 50fps,如 Buttery Smooth 10fps 中所述。

This superuser answer是最初让我理解这个问题的原因。它解释了问题并提供了一些上下文链接,包括指向 Frame Delay Times for Animated Gifs 的链接。 ,它提供了有关这种差异背后的历史的一些额外背景。后一篇文章暗示了这样一个事实:某些浏览器可能会将 1/100 的值解释为 10/100,使其看起来比预期慢得多。

有趣的是,我发现在我测试过的现代浏览器中将 gif 帧延迟设置为 2/100(而不是 1/100)会导致帧播放速度快得多,这似乎是他们支持的最大速度(50fps)。我怀疑 EZGif 已经知道这一点,并在他们的算法中考虑到了这一点。

关于python - Gif 帧持续时间似乎比预期慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64473278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com