首页 > 解决方案 > 创建透明动画 gif 时出现故障

问题描述

我正在使用 FFMPEG 从一组具有透明度的帧创建动画 gif。首先创建一个调色板。

input file: -f frameinput -input_type canvas -pix_fmt bgra -r 6 -s 640x360
output file: -vf palettegen=stats_mode=full -an

然后创建 gif。

input file: -f frameinput -input_type canvas -pix_fmt bgra -r 6 -s 640x360
output file: -f gif -lavfi paletteuse=diff_mode=rectangle:dither=none -an

结果看起来像这样。在所有透明背景区域都被不透明区域覆盖后,会立即出现此问题。

在此处输入图像描述

它应该如下所示。这是使用 ezgif 网站创建的。

在此处输入图像描述

有谁知道这里会发生什么?我可以包含任何参数来防止这种情况吗?生成的调色板文件看起来是正确的,除了右下角的一个透明像素外,全黑,所以我认为问题出在paletteuse 调用中。

我尝试解决的问题包括更改 diff_mode 和抖动。Use_alpha 看起来像是我应该尝试的东西,但我似乎无法正确使用语法。用户指南没有给出示例,我在其他任何地方都找不到任何示例。

标签: ffmpeganimated-gif

解决方案


推荐阅读