跳转到内容

Mac 压缩 GIF:3 种方法

使用 GetCompress、QuickTime 导出 MP4 或 FFmpeg 在 Mac 上压缩 GIF。支持裁剪、缩小宽度,或在工具允许时转换为 MP4。

作者 Petr Samokhin

一段 15 秒的 UI 演示 GIF 可能高达 20 MB。相同的视频片段转为 MP4 通常仅 1 到 2 MB。设计评审和 Bug 单有时仍要求提供 GIF,但许多工具现已接受视频格式。当必须使用 GIF 时,缩短循环时长,减小宽度和帧率,并使用优化的调色板编码。未发布的产品 UI 应避免上传至随机网站。

三种可靠方案覆盖大多数 Mac 场景:GetCompress 用于本地带预览的 GIF 处理,QuickTime 用于允许 MP4 的场景,FFmpeg 用于需要调色板参数或文件夹脚本的场景。

方法 1:GetCompress

适用场景: 缩小现有 GIF,或从 MOV/MP4 制作 GIF,在提交工单前进行裁剪和帧预览。

GetCompress 主窗口,队列中有 GIF,GIF 设置已打开,包括宽度、帧率和质量选项
  1. 打开 GetCompress ,拖入 GIF,或拖入视频以从源文件创建 GIF。
  2. 在预览中裁剪空闲帧。
  3. 设置宽度(640 或 800 px 适用于大多数表单)和帧率,然后导出。
  4. 如果线程允许视频,改为导出 MP4,跳过 GIF。

处理过程在 Mac 本地完成。保存预设(如“Bug GIF 640w 10fps”)以便下次复用。逐帧预览可在工单发出前发现模糊的文字。当允许视频时,参见 Mac 将 GIF 转换为 MP4

方法 2:在 QuickTime 中导出 MP4

适用场景: 单次屏幕录制,且 Slack、Notion、GitHub 或文档工具接受视频。

  1. QuickTime Player 中打开录制文件。
  2. 编辑 → 修剪 (⌘T) 仅保留动作部分。
  3. 文件 → 导出为… → 720p

上传 MP4。文件体积显著减小,同时保留完整色彩和流畅动态。仅在工具仍限制视频时使用 GIF。

限制: QuickTime 无法对现有 GIF 进行精细的调色板重绘。若必须使用 GIF,请使用方法 1 或 3。

方法 3:FFmpeg 调色板管线

适用场景: 精确控制帧率和宽度参数,批量重压缩体积过大的 GIF 文件。

通过 Homebrew 安装 FFmpeg:

brew install ffmpeg

从 MP4 转换:

ffmpeg -i clip.mp4 -vf "fps=10,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 clip.gif

重压缩现有 GIF:

ffmpeg -i big.gif -vf "fps=10,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 clip-small.gif
参数更小体积更高质量
fps812 至 15
scale 宽度480 至 640800 至 960
源裁剪最短可用片段完整交互过程

在 FFmpeg 处理前先在 QuickTime 中裁剪,避免编码空闲帧。多次重编码同一 GIF 会增加色带现象。如有可能,保留 MP4 母版。

限制: 需自行维护命令。VLC 可导出 GIF,但调色板控制容易出错。

如何选择方法

场景首选方案
recurring Bug GIF、预览或视频转 GIFGetCompress
单次片段且允许视频QuickTime MP4
脚本或精确调色板参数FFmpeg

从视频创建 GIF: Mac 视频转 GIF 。静态图片: Mac 压缩图片

GIF 文件为何体积较大

GIF 每帧存储完整光栅图像,且颜色上限为 256 色。带有渐变和抗锯齿文本的屏幕录制对 GIF 体积影响显著。

因素对体积的影响
时长循环越长 ≈ 文件越大
宽度画布越宽,体积增长越快
帧率帧数越多 = 数据量越大
色彩复杂度若未优化调色板,易出现色带
上传限制典型优化顺序
5 MB裁剪至 3 秒,640 px,8 fps
10 MB800 px,10 fps,时长小于 8 秒
无限制允许时优先使用 MP4

QuickTime 或 FFmpeg 何时足够

当单次 MP4 导出即可发送时,QuickTime 即可满足需求。当团队 README 中已有调色板配方时,FFmpeg 已足够。

当 QA 每周归档同类片段、附件前需要帧预览,或设计人员从 Principle 或 After Effects 导出体积过大的 GIF 且仅需较小附件时,GetCompress 也能提供帮助。当小体积 GIF 质量仍不佳时,优先使用 MP4 或静态 PNG 序列。它不替代从零开始制作动画循环的专业工具。