gif 动画是不是很难压缩?

2023-04-27 09:55:38 +08:00
 azev

试用了 pillow 的 quantize 和 save ,调了好些参数也没怎么减小。

2066 次点击
所在节点    问与答
16 条回复
heyjei
2023-04-27 09:58:31 +08:00
是的,可以试着转成 mp4
kinglisky
2023-04-27 10:04:23 +08:00
是的,同样是动图可以转 webP 格式或者 Apng 格式,不过最好是转成视频。

前段时间刚小小研究了下: https://juejin.cn/post/7221557738537549879
MozzieW
2023-04-27 10:40:41 +08:00
试一下 gifsicle ,能优化的技巧它都实现了。
从原理上看,压缩率不如视频,还不支持硬件加速。
GIF 格式应该被淘汰,但是使用又太广泛了。

webp 和 apng ,要考虑使用场景,很多 App 都不支持。
kidzgy
2023-04-27 10:45:08 +08:00
推荐 https://ezgif.com/optimize 我经常用它来压缩 gif ,用来制作微信表情。

用 ffmpeg 截取视频某段作为 gif ,再用 ScreenToGif 编辑需要的帧、大小,保存文件一般都比较大,再用 EZGIF 压缩,一般默认参数即可。
shakoon
2023-04-27 10:46:28 +08:00
gif 压缩率是很低的,它的算法决定了大小不可能很小。还是要看你的用途来确定要不要换个格式。
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
aihimmel
2023-04-27 11:01:02 +08:00
@kidzgy 这个其实也是楼上说的 gifsicle
tony1890
2023-04-27 11:05:36 +08:00
是的。
gif 的原理注定了很难压缩。
gif 用的是变长 lzw 算法,属于无损压缩。
这个变长 lzw 算法的压缩率和图片内容有关以及 lzw 最大编码表大小有关。我之前解码了一个 gif 文件,然后用自己实现的算法压缩,结果尺寸 x2 。因为那个 gif lzw 编码表最大 4093 ,而我用的 4096 。如何得到最佳编码表大小呢?反正我不知道。
然后,可能还和量化之后的颜色表排序有关。对一个 gif 文件,我解码之后重新量化,颜色还是那些颜色,但颜色表顺序不同,然后大小就不一样了(我的更大)。

视频相比于 gif 优势很大——颜色丰富,压缩比高。所以很多平台已经放弃 gif 了,比如知乎,gif 转成视频播放。
azev
2023-04-27 11:10:05 +08:00
@tony1890 多谢,正在试着转换为 mp4 ,但出了点问题,小尺寸的 gif 转换后貌似有问题
Thiece
2023-04-27 11:16:16 +08:00
为什么不是试试 avif 呢?
xqdoo00o
2023-04-27 11:25:31 +08:00
ezgif.com 转换
duke807
2023-04-27 11:30:19 +08:00
@Thiece

跟 av1 编码的 webm 文件相比,avif 动图存在都意义是啥?
lisxour
2023-04-27 11:30:43 +08:00
得看每帧的变化,如果变化不大的,后面那帧像素一样的地方就可以是透明的,这种优化可大幅减少 gif 大小,另外一种就是减色,这两种处理能很大程度的压缩大小
duke807
2023-04-27 11:30:55 +08:00
@duke807

存在的
ired
2023-04-27 11:46:10 +08:00
如果是在 web 应用,可以尝试转换为 webp 图片格式
mydebug
2023-04-28 11:50:28 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/935824

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX