abox.tools

语言: 简体中文

怎么把视频做成 GIF

GIF 是 1987 年的格式,存的是一张张完整画面,不是运动,所以视频做出来的 GIF 永远很大。这一页讲文件太大时该动三个设置里的哪一个,以及每一个能换回多少。

打开视频转 GIF 挑好段落、尺寸和帧率。

以 Markdown 查看

先说结论

打开视频转 GIF,把片子丢进去,标出你要的那几秒,宽度保持 480,帧率保持每秒 12 帧。多数 GIF 要的就是这一档。出来的文件要是太大,别的先别动,先把宽度降下来,那是唯一一个能省两遍的设置。

这一页剩下的部分解释为什么,因为“我的 GIF 有 14 MB”才是所有人真正遇到的问题,而该拧哪个旋钮,并不显然。

视频做成 GIF 为什么这么大

视频编码存的是运动。它每隔一两秒写一张完整画面,中间的每一帧则只写这张画面是怎么动的:这块像素往左挪了四格、这片区域暗了一点。一段五秒的片子可以只有几百 KB,因为里面大半是关于一张你手上已经有的画面的指令。

GIF 一样都没有。它 1989 年就定稿了,那时候这些东西一个都还不存在。每一帧都是一张画面,各自单独压缩,用的还是一套为电子表格截图设计的方案。这个格式里没有任何运动估计,也没法给它补上。

所以该有的心理预期是视频体积的十倍,哪个转换器都劝不动这一点。好的转换器能做的,是不在这十倍之上再浪费什么,并且把真正决定大小的那三个设置交到你手上。

片段卡片:带时间码的一帧画面,以及一条进度条显示在二十秒的片子里标出了四秒。
先定片段,因为下面每一项设置都要乘上你留下的秒数。

三个设置,各自的代价

一张 GIF 的大小归根到底就是它一共装了多少像素,也就是时长乘帧率乘单帧面积。

举个实际的例子。一段六秒的手机片子,按它自己的 ⁦1080×1920⁩、30 fps 来,就是 180 帧、每帧两百万像素,合计约三亿五千万个像素,那不叫 GIF,那叫人质事件。同样这六秒,宽 480、12 fps,就是 72 帧、每帧四十万像素,三千万,大约十二分之一,而它看上去正是人们说“GIF”时想的那个东西。

导出卡片:宽度 480、帧率、抖动选项,以及估算帧数和大小的摘要。
三项设置,加上一个随它们一起变的估算值。先花哪一项,正是这一节要谈的。

帧率该选几

这里默认十二,而它出乎意料地经常就是正确答案。手绘动画用了一个世纪的就是这个帧率:快到眼睛读得出连贯的运动,慢到你不必为谁也看不见的那些帧掏钱。

有一道硬顶你不妨知道:GIF 用百分之一秒为单位存每一帧停留多久,而所有浏览器都把小于两个单位的延迟当成十来处理。所以每秒 50 帧才是真正的上限,一个要求 100 fps 的文件,会一声不吭地按 10 fps 播。给你 60 fps 选项的转换器,要么无视了这条,要么正准备给你一个意外。

256 种颜色,以及抖动是干什么的

这个格式的年纪还体现在另一半上:一张 GIF 带一张最多 256 色的颜色表,每个像素都是指向表里某一项的编号。而一帧视频画面能有一千六百万种颜色。绝大部分都得扔掉,而怎么扔,基本决定了这张 GIF 长什么样。

好的转换器会数一遍你这段片子里的颜色,挑 256 个合适的,而不是用一套固定颜色。拍森林的就给 256 种绿,拍落日的就给 256 种橙。这里的工具就是这么干的,而且是把这一段里每一帧都数过,不只是第一帧,所以一个只在结尾出现的颜色也占得上位置。

抖动处理的是“你要的那个颜色还是没有”的情况。它不把整片区域四舍五入到最接近的可用颜色,那样一片平滑的天空会变成四道平色、中间还有看得见的台阶;它把最接近的两种颜色按细密的图案交替排布,在正常观看距离下,你的眼睛会把它们混成那个并不存在的颜色。

要是你会拿几个转换器作比较,有个细节值得知道。最容易想到的抖动做法是误差扩散,多数图像编辑软件用的就是它,它让每个像素的结果取决于周围的像素。放在动画里,就意味着一块根本没在动的背景,在每一帧里抖出来的花样都不一样,于是它明显地在爬,而且每一帧都得完整存下来,因为技术上每个像素都变了。另一种叫有序抖动,只取决于像素在哪个位置,所以静止的背景稳稳当当。这个工具用的是后者,所以它的文件既更安静,也更小。

什么时候干脆别做 GIF

这一问值得提,因为老实的答案常常是“别做”。一段无声循环的 MP4 或者 WebM,体积大约是同样动画做成 GIF 的十分之一,播放效果一样,而且你上传之后,每个社交平台反正都会把你的 GIF 转成它。

只有目的地确实需要 GIF 时才留着它:

声音要紧的话,这个问题自己就回答了:GIF 从来没有音频,将来也不会有。那就别转,去剪视频,视频剪切能从里面取出一段,而且一帧都不重编。

怎么压到人家的上限之下

多数人之所以要调 GIF,就是因为收它的那一端有个上限。按咬人的狠劲大致排一排:

超了之后该试的顺序是:先缩短段落,再把宽度砍一半,然后降帧率,最后关掉抖动。前两条加起来,比后两条加起来管用得多。

这些事一样都不用上传

把视频转成 GIF,无非是解码、缩放、数颜色、压缩这四件事,而浏览器自己干这四件已经干了很多年。顶上链接的那个工具全都在你的机器上干:文件从你的硬盘上读,画面帧由你的浏览器解码,GIF 在内存里拼好,交给你的下载。

这件事在这儿比在别处更值得在意。人们拿来做 GIF 的片子都很私人:家庭录像里的一个瞬间、工作上某个东西的屏幕录像、一通通话里的几秒钟。一个要求把这些传上去的转换器,是在向你要一份副本,而如今,已经没有哪条技术理由值得你答应了。