从 FFmpeg 图像生成调色板

Generate color palette from an image for FFmpeg

我想从图像生成调色板,但 FFmpeg 只允许从视频生成调色板。我知道的唯一可以从图像生成调色板的 Bash 工具是 ImageMagick,但它在 *.txt 中生成调色板,我需要一个 *.png 调色板。

是否有bash工具可以生成精细控制的调色板?或者也许有一种方法可以在 FFmpeg 中做到这一点?

P.S。我需要那个调色板才能在 FFmpeg 中创建 GIF。

有时您必须做一些额外的工作,因为大多数软件都有限制。例如,您说 "but it generates palettes in a *.txt and I need a *.png palette. " 好吧,您已经完成了一半。使用文本输出创建 png 图像。 imagemagick 论坛上有一些关于它的帖子,这里是一个:http://wizards-toolkit.org/discourse-server/viewtopic.php?t=25478

list=`convert beach.jpg +dither -colors 5 -unique-colors txt:- | tail -n +2 | sed -n 's/^.*\#.* \(.*\).*$/xc\:/p'`
convert -size 50x50 $list -append palette.png

有一个关于来自不同软件的调色板给出不同结果的帖子,需要注意这一点。

您可以使用 ffmpeg 从 PNG 生成调色板。试试这个:

ffmpeg -i target.png -vf palettegen palette.png