【问题标题】:Glitchiness when I add transparency to a gif and convert it to webm当我将透明度添加到 gif 并将其转换为 webm 时出现故障
【发布时间】:2017-08-30 09:19:41
【问题描述】:

从谷歌图片开始,我有这个 gif:

然后我将蓝色转换为透明:

convert octopus.gif -transparent "#00AEFF" octopus-transparent.gif

现在我有了这个(注意故障已经开始出现)

现在是大结局,我将其转换为 webm:

convert octopus-transparent.gif tmp%03d.png

ffmpeg -framerate 25 -f image2 -i ./tmp%03d.png -c:v libvpx -pix_fmt yuva420p octopus.webm

请参阅以下屏幕截图。它仍然是透明的,但尺寸不再稳定,坦率地说,它开始看起来有点令人毛骨悚然:

我对视频编解码器知之甚少,在其他人的帮助下我才走到这一步。我很感激有关如何更改这些命令以避免故障的建议。

【问题讨论】:

标签: animation ffmpeg imagemagick gif webm


【解决方案1】:

您的问题可能是由于优化后的帧大小不等,因此将 -coalesce 添加到您的命令中,这样就可以了

convert octopus.gif -coalesce -fuzz 25% -transparent "#00AEEF" miff:- | convert -dispose background - octopus-transparent.gif

如果你只是想再次保存为gif,你可以在保存前添加-layer优化。但是如果你想输出到webm,你可能需要避免-layers优化。

另外你没有固定的蓝色,所以你需要-fuzz。

要转换的管道允许设置 dispose 方法。它不会在第一次转换中内联工作,因为它需要在读取输入后立即设置,因此会拾取蓝色背景而不是透明背景。

您的 IM 版本是多少?也许您需要升级。我使用 IM 6.9.8.3 Q16 得到这个:

【讨论】:

    猜你喜欢
    • 2011-12-26
    • 2016-04-30
    • 1970-01-01
    • 2015-01-26
    • 2013-09-10
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    相关资源
    最近更新 更多