大多数 GIF 都会无限循环,但并非全部如此。GIF 会不会重复、重复几次,并不由显示它的网站 或 App 决定,而是由文件内部的一项小设置决定,通常叫作“循环次数”(loop count)。如果你的 GIF 播一遍就停住,或者你希望它播几遍就停下,要改的就是这项设置。
GIF 循环的原理
动态 GIF 可以带一个小数据块,即 Netscape 循环扩展,告诉查看器动画要重复几次。它的内容 决定了 GIF 的表现:
| 文件中的循环设置 | 查看器通常的表现 |
|---|---|
| 循环次数为 0 | 无限循环 |
| 没有循环数据块 | 播放一次,停在最后一帧 |
| 循环次数为 N(1 或更大) | 先播放一次,再重复 N 次 |
最容易让人误会的是最后一行:循环次数为 1 时,动画通常会显示两遍,即第一次播放加一次重复。 不同工具的说法不一样,各种查看器历史上也不完全一致,所以如果在意确切的次数,请在实际使用 的地方测试一下成品。
制作无限循环的 GIF
LoopVideo 视频转 GIF 工具 生成的 GIF 会无限循环。它在浏览器中运行, 不需要登录,也不消耗积分。
- 上传一段较短的 MP4、MOV 或 WebM 视频。转换会使用整段视频,较长的素材请先在剪辑软件 中剪短。
- 设置宽度和帧率。默认宽度 480 像素、帧率 12 FPS;帧率可在 8 到 24 之间调整,高度按 原始比例自动计算。
- 转换后检查预览,再下载 GIF。
这个工具不能选择循环次数。如果需要 GIF 播放几遍后停止,可以用下面的工具处理下载好的文件。
用 ffmpeg 或 gifsicle 设置循环次数
两款免费的命令行工具都能写入任意循环设置。
ffmpeg 在把视频转换为 GIF 时设置循环次数。-loop 0 表示无限循环,也是 ffmpeg 的
默认值;-loop 2 写入循环次数 2,通常总共播放三遍;-loop -1 不写循环数据块,GIF 只
播放一次:
ffmpeg -i clip.mp4 -loop 0 forever.gif
ffmpeg -i clip.mp4 -loop 2 three-plays.gif
ffmpeg -i clip.mp4 -loop -1 once.gif这些简短命令省略了调色板步骤,颜色可能比 LoopVideo 转换工具的结果粗糙,后者会根据片段 生成调色板。更省事的做法通常是先在浏览器中转换,再修改循环次数。
gifsicle 可以修改已有 GIF 的循环设置,画面保持不变:
gifsicle --loopcount=forever input.gif > forever.gif
gifsicle --loopcount=2 input.gif > three-plays.gif
gifsicle --no-loopcount input.gif > once.gif它的手册写明了计数方式:循环次数为 1 表示循环一次,所以每一帧会显示两遍。能导出动态 GIF 的图形编辑软件也提供同样的选择,通常是“一次”“永远”或自定义次数这类循环选项。
GIF 还是不循环?
如果文件已经设置为无限循环,发布后却不重复,原因通常不在 GIF 本身:
- 平台转换了文件。 许多社交网络和聊天 App 会把上传的 GIF 转成视频,再按自己的规则 播放,文件里的循环次数可能被忽略。
- 查看器不支持动画。 有些邮件客户端和文档查看器只显示动态 GIF 的第一帧。
- 保存成了静态图片。 截图、部分图片编辑器和某些“存储图像”选项只会保留一帧。请分享原始文件。
- 减弱动态效果设置。 设备开启减少动态效果时,有些 App 会暂停动画。
直接用网页浏览器打开下载的 GIF。如果在浏览器里能循环,说明文件没问题,是发布平台改变了它。
让循环接缝更平滑
无限循环的 GIF 也会无限次地展示它的循环接缝。如果最后一帧和第一帧对不上,每次重复都会 先跳一下。设置循环次数解决不了这个问题,因为帧本身没有变。
请在转换前先修正视频里的跳变:
- 把片段上传到 LoopVideo 工作台,用免费的重复预览查看结尾回到 开头的效果。
- 如果有跳变,选择 AI 无缝循环。LoopVideo 会生成一段约 5 秒的过渡,把最后一帧带回第一帧。 AI 需要登录,邮箱账号须先完成验证;一次性的免费试用(如可用)会带有可见水印,使用 1 个 付费积分可得到无水印结果。
- 下载无缝循环视频,再转换为 GIF。
加入过渡后 GIF 会变长,体积也会变大,所以请从较短的片段开始。包含体积优化建议的完整流程见 如何制作无缝循环 GIF。
什么时候循环视频更合适
GIF 没有声音,每帧最多 256 种颜色,文件也很容易变大。在你自己能编辑的网页上,带 loop
属性的静音 MP4 通常更清晰,体积也只有 GIF 的一小部分。播放器和网页中的循环方法见
如何在任意设备上循环播放视频。
常见问题
怎样让 GIF 无限循环?
把循环次数设为 0,即无限循环。LoopVideo 转换工具生成的 GIF 本来就会无限循环;其他文件
可以运行 gifsicle --loopcount=forever input.gif > output.gif。
怎样让 GIF 只播放一次?
去掉循环数据块,例如使用 gifsicle --no-loopcount 或 ffmpeg 的 -loop -1。把次数设为 1
通常会显示两遍。
为什么我的 GIF 播一遍就停了?
文件里没有循环数据块,或者循环次数很小。把它设为无限循环,再在浏览器中测试。
修改循环次数会降低画质吗?
不会。GIF 的压缩是无损的;除非你要求 gifsicle 优化或缩放画面,否则它只修改循环设置。
LoopVideo 会给 GIF 加水印吗?
转换工具不会。用免费 AI 试用结果制作的 GIF 会保留该结果的可见水印。

