You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用FFmpeg生成GIF文件体积过大,求简易压缩方法

缩小FFmpeg转换GIF体积的简易方法

哈哈,我太懂这种GIF体积突然爆炸的痛苦了!你的输入视频才259k,转出来直接到1.7M确实有点离谱,给你几个简单的参数调整思路,改完就能明显压缩体积,而且画质不会崩得太厉害:

  • 优化调色板(最有效!)
    GIF是基于调色板的格式,FFmpeg默认的色彩处理不够精细,生成一个自定义调色板能大幅减少色彩冗余。分两步执行命令:

    1. 生成优化调色板:
      /usr/bin/ffmpeg -ss 00:00:00.00 -t 5 -i /htdocs/vv.mp4 -vf "scale=480:-1,palettegen=max_colors=64" -y /htdocs/temp_palette.png
      
      这里max_colors=64可以根据需求调整(比如32/128),数字越小体积越小,画质也会有轻微下降。
    2. 用调色板生成GIF:
      /usr/bin/ffmpeg -ss 00:00:00.00 -t 5 -i /htdocs/vv.mp4 -i /htdocs/temp_palette.png -lavfi "scale=480:-1 [x]; [x][1:v] paletteuse=dither=bayer" -y /htdocs/gg.gif
      
  • 降低帧率
    视频一般是30帧/秒,但GIF不需要这么高的流畅度,降到15或10帧足够用,直接加-r 15参数:

    /usr/bin/ffmpeg -ss 00:00:00.00 -t 5 -i /htdocs/vv.mp4 -vf "scale=480:-1" -r 15 -gifflags +transdiff -y /htdocs/gg.gif
    
  • Lossy压缩
    给GIF加上有损压缩参数-lossy 80(数值范围0-200,越高压缩率越大),在画质损失很小的情况下能压掉不少体积:

    /usr/bin/ffmpeg -ss 00:00:00.00 -t 5 -i /htdocs/vv.mp4 -vf "scale=480:-1" -gifflags +transdiff -lossy 80 -y /htdocs/gg.gif
    
  • 进一步缩小分辨率
    如果你的内容不需要480的宽度,改成360甚至320,比如scale=360:-1,体积会直接按比例缩小,效果立竿见影。

如果想一步到位,把几个优化参数结合起来,试试这个组合命令:

/usr/bin/ffmpeg -ss 00:00:00.00 -t 5 -i /htdocs/vv.mp4 -vf "scale=360:-1,palettegen=max_colors=64" -y /htdocs/temp_palette.png
/usr/bin/ffmpeg -ss 00:00:00.00 -t 5 -i /htdocs/vv.mp4 -i /htdocs/temp_palette.png -lavfi "scale=360:-1 [x]; [x][1:v] paletteuse=dither=bayer" -r 15 -gifflags +transdiff+optimize -lossy 80 -y /htdocs/gg.gif

生成完GIF后,删掉临时的temp_palette.png就行啦~

内容的提问来源于stack exchange,提问作者Allen_Tsang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:37:59