无需上传、100% 本地处理、无需账户

GIF 转视频 (MP4)

将动态 GIF 转换为小巧、易于分享的 MP4。一切都在浏览器中运行。

GIF 转视频 (MP4) 的工作原理

使用 ffmpeg WebAssembly,完全在浏览器内将动态 GIF 转换为紧凑的 MP4 视频。GIF 帧以 yuv420p 像素格式重新编码为 H.264,这是浏览器和社交平台兼容性最广的选择。生成的 MP4 通常比源 GIF 小五到二十倍,同时看起来明显更清晰,因为 H.264 不限于 256 色,并且比 GIF 的 LZW 算法更有效地压缩帧间冗余。

大多数 GIF 在几秒内转换完成,因为帧数较少。生成的 MP4 在所有现代浏览器中原生播放,可以无插件嵌入网页。MP4 中的循环行为取决于播放器,而不是像 GIF 那样编码在文件中,GIF 携带自己的循环指令。

GIF 转视频 (MP4) 的分步使用说明

  1. 拖入或选择动态 GIF 文件。
  2. 工具自动检测帧数和尺寸。
  3. 点击「转换为 MP4」在你的设备上启动 H.264 重新编码。
  4. 等待 ffmpeg 完成。
  5. 下载 MP4,在 GIF 太大的任何地方使用它。

常见使用场景

  • 用 MP4 替换网页上的大型 GIF,减少页面加载时间并改善核心网页指标得分。
  • 将客户发送的 GIF 转换为 MP4,导入到不接受 GIF 的视频编辑器中。
  • 在将贴纸包 GIF 上传到每文件大小上限的平台之前压缩它们。
  • 将 GIF 动画原型转换为 MP4,用于文件大小重要的宣传材料。

常见问题

与 GIF 相比,MP4 会小多少?

GIF 使用 LZW 无损压缩,但为每一帧携带完整的颜色索引帧。H.264 只存储帧间差异(帧间预测)并使用感知有损压缩器,因此节省是显著的。几兆字节的典型动态 GIF 变成几百千字节的 MP4。确切比率取决于每帧中有多少运动。

GIF 文件是发送到服务器进行转换的吗?

不是。ffmpeg.wasm 在你的浏览器标签页内将 GIF 帧重新编码为 H.264。GIF 被读入本地内存,在那里处理,MP4 下载到你的设备。在转换过程中没有任何内容离开你的机器。

MP4 会像 GIF 一样自动循环吗?

循环属性不像 GIF 的 NETSCAPE 扩展那样存储在 MP4 文件本身中。视频是否循环取决于播放器:大多数浏览器在 HTML 中循环设置了 loop 属性的短视频,社交平台自动循环。独立视频播放器可能播放一次后停止。如果你需要在网页上控制循环,请向视频元素添加 loop 属性。

转换是否影响帧率或持续时间?

输出 MP4 中的帧率与 GIF 中的帧时序匹配,ffmpeg 从 GIF 的帧延迟头中读取这些信息。如果 GIF 中不同帧具有不同的延迟值(可变帧率),ffmpeg 将这些规范化为恒定帧率。总持续时间被保留。

可以转换非常大的 GIF,比如 50 MB 的文件吗?

原则上可以,但整个文件必须在处理过程中同时加载到浏览器内存中,这需要你的设备有足够的 RAM。具有许多帧的大型 GIF 可能需要大量内存。如果标签页崩溃,先尝试用外部工具将 GIF 分割为较短的片段。

为什么输出是 yuv420p 而不是精确保留原始颜色?

yuv420p 是所有解码器和浏览器普遍支持的唯一 H.264 颜色空间。具有完整 RGB 或 yuv444p 颜色空间的 H.264 在某些播放器中有效,但在其他播放器中失败。从 GIF 的 256 色调色板转换为 yuv420p 产生的结果在人眼中比 GIF 看起来更清晰,因为 H.264 存储真彩色数据,而不是有限的调色板。

可以在手机上把 GIF 转换成 MP4 吗?

可以。大多数 GIF 体积足够小,即使在手机浏览器上重新编码也很快,对内存的占用也很轻。只有帧数很多、体积达到数十兆字节的超大 GIF 是个例外,这种情况电脑处理起来会更从容。