GIF 是社交平台的"通用语言"——微信表情包、抖音封面、Slack 反馈,全都用 GIF。本文详解 3 种常用制作方法 + 5 个减小体积 / 提升画质的技巧,让你的 GIF 加载快、播放流畅。
为什么 GIF 这么流行?因为它:
但 GIF 也有缺点:
| 场景 | 推荐格式 |
|---|---|
| 微信表情包 | GIF |
| 抖音 / 小红书封面 | GIF / 视频 |
| Slack / 飞书表情 | GIF |
| 教程演示 | GIF |
| 电影感短视频 | MP4 |
| 长视频 / 完整内容 | MP4 |
最常用:从 MP4 / MOV 截一段做 GIF。
# 基础转换:从第 5 秒开始,截 5 秒
ffmpeg -i input.mp4 -ss 5 -t 5 -vf "fps=15,scale=480:-1" output.gif
# 高质量 + 调色板优化
ffmpeg -i input.mp4 -ss 5 -t 5 \
-vf "fps=15,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
output.gif
录制屏幕操作并直接导出为 GIF。
适合已经有一组图片(连环画、表情包)。
# 把多张图片合成 GIF
convert -delay 100 -loop 0 frame1.png frame2.png frame3.png output.gif
# -delay 100 = 每帧 1 秒(100 = 1/100 秒)
# -loop 0 = 永远循环
GIF 体积跟分辨率线性增长。降到合理尺寸能大幅减少体积:
| 用途 | 推荐宽度 |
|---|---|
| 微信表情 | 240 px |
| Slack 表情 | 128 px |
| 教程 GIF | 600-800 px |
| 社交媒体 | 480 px |
GIF 帧率对体积影响巨大:
| 帧率 | 5 秒 GIF 大小 | 用途 |
|---|---|---|
| 24 fps | 5 MB | 丝滑(但文件大) |
| 15 fps | 3 MB | 推荐(足够流畅) |
| 10 fps | 2 MB | 慢动作风格 |
| 8 fps | 1.5 MB | 复古动画风 |
GIF 只有 256 色。手动减少颜色数能大幅瘦身:
# 用 FFmpeg 限制颜色数到 64
ffmpeg -i input.mp4 -vf "fps=15,scale=480:-1,palettegen=max_colors=64" output.gif
快速运动的 GIF 可以"抽帧"——保留每 2-3 帧:
# 每 2 帧保留 1 帧(看起来仍是 12 fps,但体积减半)
ffmpeg -i input.mp4 -vf "select='not(mod(n,2))',setpts=N/FRAME_RATE/TB" output.gif
5 秒的 GIF 太长?加速到 3 秒:
# 加速 1.5 倍(视频 5 秒 → GIF 3.3 秒)
ffmpeg -i input.mp4 -filter:v "setpts=0.66*PTS" output.gif
微信表情包 1 套 = 16 个或 24 个 GIF,单个 ≤ 1 MB,尺寸 240×240 px。
教程 GIF 通常需要标注:
# FFmpeg 加文字水印
ffmpeg -i input.mp4 -vf "drawtext=text='点这里':x=100:y=100:fontsize=24:fontcolor=white:box=1:boxcolor=black@0.5" output.gif
# 视频倒放
ffmpeg -i input.mp4 -vf reverse output.gif
# 慢动作 2 倍(视频变 2 倍长)
ffmpeg -i input.mp4 -filter:v "setpts=2*PTS" output.gif
# 多段拼接
ffmpeg -i part1.mp4 -i part2.mp4 -filter_complex "[0:v][1:v]concat=n=2:v=1[v]" -map "[v]" output.gif
GIF 的现代替代: