使用 FFmpeg 将 MP4 转换为 GIF 时,如何限制 GIF 文件中使用的颜色数量?

Uns*_*ino 3 video gif mp4 ffmpeg video-conversion

我在 SuperUser 上找到了这个命令,可以将 MP4 转换为 GIF:

ffmpeg -i INPUT_FILE.MP4 -vf "fps=16,scale=160:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 OUTPUT_FILE.GIF
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但 FFmpeg 喜欢使用所有 256 种颜色,这使得 GIF 非常大。我希望 FFmpeg 使用 32 或 64 色,因为它有助于减小文件大小并使我的硬件更容易解析 GIF。

我使用 ATSAMD51 在屏幕上显示 GIF,因此更少的颜色 = 更快的渲染。

在 ezgif.com 上,您可以优化 GIF。我想在 FFmpeg 中做这样的事情:

我想在 FFmpeg 中做什么的图片

那么,FFmpeg 在将 MP4 转换为 GIF 时是否可以使用指定数量的颜色?(哦,请不要透明!它会减慢解码速度。)

(另外,我运行的是 Windows 10,而且我是 FFmpeg 的菜鸟)

llo*_*gan 6

Palettegen中的使用max_colorsreserve_transparent选项:

ffmpeg -i input.mp4 -vf "fps=16,scale=160:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=32:reserve_transparent=0[p];[s1][p]paletteuse" -loop 0 output.gif
Run Code Online (Sandbox Code Playgroud)