ffmpeg `palettegen` 吐出一个无法使用的调色板 `paletteuse`

ffmpeg `palettegen` 吐出一个无法使用的调色板 `paletteuse`

我正在尝试使用调色板来改善 MP4 的 gif 渲染,正如建议的那样。然而,我遇到了一个奇怪的问题:

$ ffmpeg -v warning -i test.mp4 -vf "fps=15,scale=320:-1:flags=lanczos,palettegen" -y /tmp/palette.png

$ ffmpeg -v warning -i /tmp/palette.png -i test.mp4 -lavfi paletteuse -y test.gif
[Parsed_paletteuse_0 @ 0x7f83a8c0eb20] Palette input must contain exactly 256 pixels. Specified input has 480x480=230400 pixels

palettegen似乎吐出了一个paletteuse实际上无法使用的调色板。如果文档没有指定这不是预期的行为,那么这就不会那么令人费解了:

保留透明

创建一个最多 255 种颜色的调色板,并保留最后一种颜色用于透明度。保留透明色对 GIF 优化很有用。如果未设置,调色板中的最大颜色数将为 256。您可能希望为独立图像禁用此选项。默认设置。

那么呃。该怎么办?(记录:OsX 10.12,ffmpeg 3.2.4)

答案1

paletteuse 过滤器要求第二个输入是调色板。在当前命令中,由于输入没有明确标记,因此过滤器会按照指定的顺序归纳输入。因此,

ffmpeg -v warning -i test.mp4 -i /tmp/palette.png -lavfi paletteuse -y test.gif

相关内容