这个页面的代码没跑起来。

直接从文件夹里打开 index.html,浏览器会拦下 JavaScript 模块,于是你选好视频之后,页面不会有任何反应。改用 http 把这个文件夹提供出去:

powershell -ExecutionPolicy Bypass -File serve.ps1

然后打开 http://localhost:8080/。

视频转 GIF 把视频做成动图

挑好段落、尺寸和帧率。

语言: 简体中文
查看源码
你的视频在浏览器里处理,无须上传处理。

每一帧的读取、缩放、量化和写出,都是你自己的浏览器用你自己的硬件做的。这里没有任何东西能取数据或者发数据,这个工具压根没有联网功能。就算真有,这个页面的另一头也没有服务器能接住一段视频。

实时检查: 检查中…

离线: 检查中…

别信我们嘴上说的。打开开发者工具,盯着“网络”面板,做一张 GIF 试试。没有一条请求带着画面帧、文件名,或者你选中内容里的任何一个字节。或者干脆拔掉网线照做,一个把视频送出去转换的工具,这时候就该停了。

1 选一段视频

2 挑出那一段

放起来,把要的那一段标出来。I 把开始点定在播放头这儿,O 定结束点,条上那两个手柄也能直接拖。

0:00.000 —

3 尺寸和帧率

宽度 高度跟着走,比例不会变。GIF 的花销就在宽度上:宽度砍一半,像素少四分之三。

精确宽度 单位像素,16 到 1920 之间。

每秒帧数 这不是视频自己的帧率,帧是从里面抽出来的。十二帧就读得出是在动;过了二十,文件涨得比顺滑看得出来的部分快。

抖动 配色板里缺哪个颜色,就拿两个凑。用的是有序抖动,所以静止的背景不会满屏爬。

一直循环 关掉就只放一遍,然后停住。

段落
—
输出
—
帧数
—
大致体积
—

以 Markdown 查看

视频怎么做成 GIF

  1. 选一段视频。把 MP4、MOV、M4V 或者 WebM 拖到下面的方框里,或者点开自己挑。浏览器直接从你的硬盘上读,这期间没有东西发出去。
  2. 标出那一段。放起来,该开始的地方按 I,该结束的地方按 O,也可以直接拖条上那两个手柄。GIF 就该是几秒钟的东西。文件是小是大,这个设置说了算,另外两个加起来都没它要紧。
  3. 挑宽度和帧率。宽 480 像素、每秒 12 帧,GIF 的常见用途基本都够。宽度砍一半,像素少四分之三;每秒十二帧已经读得出是在动,再多的那些帧谁也看不出来,白花钱。
  4. 做出来,然后下载。帧读进来,整段动画共用一份 256 色的配色板,每一帧只写画面里变了的那一块。做完就在页面上放给你看,那张图跟你下载到的是同一个文件。

说得更细的版本

怎么把视频做成 GIF 该挑哪一段、多宽、每秒几帧,视频做成 GIF 为什么会大出十倍,以及什么时候压根不该用 GIF。

常见问题

我的视频会传到什么地方去吗?

不会。读取、取帧、转换,全由你自己的浏览器在你自己的硬件上完成。这个工具没有服务器那一半,页面的 Content-Security-Policy 把它可能联的地址全列了出来,没有一个是本站的。与其听我们说,不如拔掉网线,照做一张试试。

能转哪些格式?

MP4、M4V 和 MOV 直接读,里面装的是 H.264、HEVC、AV1 还是 VP9 都行,只要你的浏览器解得了那个编码。其他浏览器能播的格式,最典型的是 WebM,改成把播放器逐个时间点跳过去取帧,慢一些,落在哪一帧上也没那么精确。浏览器既读不了也播不了的文件,实际上就是 AVI、WMV、FLV 和大多数 MKV,会被直接拒收并说明原因,不会干到一半才崩。

我的 GIF 怎么这么大?

因为 GIF 是 1987 年的格式,它存的是一张张完整的图,不是运动。一段五秒的片子,做成 GIF 不可能跟它自己那个五秒的 MP4 一样小,视频转出来的 GIF 通常是原视频的十倍。真正决定大小的是三个设置,按要紧程度排:这一段多长、画面多宽、每秒几帧。宽度砍一半,像素就少四分之三,而花钱的正是像素。

为什么只有 256 种颜色?

格式就是这么定的:一张 GIF 带一张最多 256 色的颜色表,每个像素存的是表里的编号。这个工具的做法是把你选中那一段里每一帧的颜色都数一遍,再分成 256 组,用的是中位切分法,业界标准做法,所以配色板是贴着你这段片子长出来的,不是一套固定颜色。缺了某个颜色的地方,抖动会把最接近的两种混在一起,让渐变还是渐变,而不是一道道色带。

抖动那个设置是干什么的?

拿一点噪点,换掉一大片色带。开着的时候,一片本来会变成四道平色的天空还是渐变,代价是有点细微的纹理,文件也大一点。关掉则画面更平、文件更小,适合屏幕录像、线稿,以及本来就由大片纯色构成的东西。这里用的是有序抖动,不是误差扩散那种,所以没变化的背景在帧之间稳稳当当,不会满屏爬。

长度和体积有限制吗?

开始前,页面会估算保留的帧、GIF 输出和临时解码缓冲区,并拒绝超出有限规划预算的方案。浏览器提供的设备内存提示可能降低预算,但它不会测量可用内存,也不能保证标签页始终处于预算内。减小宽度、缩短片段或降低帧率会减少输出处理量,但原视频仍需自己的解码缓冲区。

声音能保住吗?

GIF 装不了声音。这个格式压根没有带音频的版本,这也正是后来网上大多改用无声循环视频的主要原因。声音要紧的话,那就别转,留着视频,视频剪切能从里面剪出一段,而且一帧都不重编。

免费吗?要注册吗?

免费,没有账号,不用登录,没有试用期,也没有水印。本站带广告,经费就是这么来的,广告拿不到关于你视频的任何信息。