试用了 pillow 的 quantize 和 save ,调了好些参数也没怎么减小。
1
heyjei 2023-04-27 09:58:31 +08:00
是的,可以试着转成 mp4
|
2
kinglisky 2023-04-27 10:04:23 +08:00 1
|
3
MozzieW 2023-04-27 10:40:41 +08:00
试一下 gifsicle ,能优化的技巧它都实现了。
从原理上看,压缩率不如视频,还不支持硬件加速。 GIF 格式应该被淘汰,但是使用又太广泛了。 webp 和 apng ,要考虑使用场景,很多 App 都不支持。 |
4
kidzgy 2023-04-27 10:45:08 +08:00 1
推荐 https://ezgif.com/optimize 我经常用它来压缩 gif ,用来制作微信表情。
用 ffmpeg 截取视频某段作为 gif ,再用 ScreenToGif 编辑需要的帧、大小,保存文件一般都比较大,再用 EZGIF 压缩,一般默认参数即可。 |
5
shakoon 2023-04-27 10:46:28 +08:00
gif 压缩率是很低的,它的算法决定了大小不可能很小。还是要看你的用途来确定要不要换个格式。
|
6
b821025551b 2023-04-27 10:53:09 +08:00
gif 压缩的话,在 Photpshop 里操作比较直观,压缩的思路可以从这几点入手:
1 、抽帧,如果一个文件有 30 帧,每秒 1 帧,可以每隔 1 帧删除掉,然后改为每 2 秒 1 帧; 2 、减色,gif 最大支持 256 色,这也是为什么有些视频转换后效果失真;但是如果这个文件色彩没有那么多,可以试着减成 128 色、64 色,甚至有些动漫可以减到 32 色、16 色; 3 、压缩像素,这也是最简单的,把尺寸缩小; 补充一下:如果是用于 UI 界面使用的动画,推荐 lottie: https://airbnb.design/lottie |
8
tony1890 2023-04-27 11:05:36 +08:00 1
是的。
gif 的原理注定了很难压缩。 gif 用的是变长 lzw 算法,属于无损压缩。 这个变长 lzw 算法的压缩率和图片内容有关以及 lzw 最大编码表大小有关。我之前解码了一个 gif 文件,然后用自己实现的算法压缩,结果尺寸 x2 。因为那个 gif lzw 编码表最大 4093 ,而我用的 4096 。如何得到最佳编码表大小呢?反正我不知道。 然后,可能还和量化之后的颜色表排序有关。对一个 gif 文件,我解码之后重新量化,颜色还是那些颜色,但颜色表顺序不同,然后大小就不一样了(我的更大)。 视频相比于 gif 优势很大——颜色丰富,压缩比高。所以很多平台已经放弃 gif 了,比如知乎,gif 转成视频播放。 |
10
Thiece 2023-04-27 11:16:16 +08:00
为什么不是试试 avif 呢?
|
13
lisxour 2023-04-27 11:30:43 +08:00
得看每帧的变化,如果变化不大的,后面那帧像素一样的地方就可以是透明的,这种优化可大幅减少 gif 大小,另外一种就是减色,这两种处理能很大程度的压缩大小
|
15
ired 2023-04-27 11:46:10 +08:00
如果是在 web 应用,可以尝试转换为 webp 图片格式
|
16
mydebug 2023-04-28 11:50:28 +08:00
|