在线免费提取视频帧并制作 GIF

加载视频并以胶片条形式浏览。把任意一帧保存为全分辨率静态图,或标记起始帧和结束帧,把那一段导出为循环的动态 GIF。编译为 WebAssembly 的 FFmpeg 在你的浏览器中完成所有工作,因此视频绝不上传。

把视频拖到这里或点击选择

MP4、MOV、WebM、MKV、AVI 及大多数其他格式

视频绝不离开你的设备

加载视频后,帧会显示在这里。

加载视频以查看它的帧。

以原始帧尺寸导出。
数值越低编码越快。
高度遵循视频宽高比。
用于 GIF 的调色板大小。

视频解码与 GIF 编码运行在 ffmpeg.wasm 上,这是 FFmpeg 的一个 WebAssembly 构建。其封装层采用 MIT 许可证,自托管的核心构建采用 GPL-2.0-or-later; 其源代码由 ffmpeg.wasm 项目发布。73hi 与 FFmpeg 项目无关联。

三步搞定

如何把视频的一部分转成 GIF

没有上传排队,没有命令行,也无需安装软件。

1

加载视频

选择一个文件或把它拖到上传区。首次访问会一次性下载约 31 MB 的 WebAssembly 视频引擎。

2

浏览胶片条

帧连同时间戳水平排列。点击某一帧即可选中它。

3

保存静态图或 GIF

保存帧以全分辨率导出那一刻。点击靠后的一帧标记范围,然后创建 GIF。

真正的 FFmpeg,在浏览器内

帧精确的静态图与正规的 GIF 调色板

与视频编辑器所用相同的滤镜,运行在 WebAssembly 中。

胶片条浏览

查看均匀间隔的帧,或让 FFmpeg 挑选场景切换,每一帧都标注了时间戳。

全分辨率静态图

胶片条只是预览。保存某一帧会重新读取那个时间戳,并写出视频的原始像素。

基于调色板的 GIF

每个 GIF 都会得到一个由它自己的帧生成的调色板,这让渐变和肤色远比固定调色板干净。

设计上私密

解码与编码在你设备上的一个 Web Worker 中进行。视频绝不上传到服务器。

格式与限制

输入什么,输出什么

输入支持取决于在你浏览器中运行的 FFmpeg 构建。

方向 格式 说明
输入 MP4、MOV、WebM、MKV、AVI 最常见的容器可直接解码;冷门编解码器可能需要先转换
静态图输出 PNG、JPEG 以原始帧分辨率导出
动画输出 GIF 循环、调色板优化、宽 240 到 640 像素

性能:单线程的 WebAssembly 构建比桌面 FFmpeg 慢得多。以 10 fps、宽 320 像素编码几秒钟的短片段只需数秒,而较长或高分辨率的范围可能需要一分钟或更久。进度条移动时请保持浏览器标签页打开。

常见问题

视频帧与 GIF 常见问题

我的视频会被上传到服务器吗?

不会。视频被写入编译为 WebAssembly 的 FFmpeg 的内存文件系统,后者在你浏览器中的一个 Web Worker 里运行。解码、帧提取与 GIF 编码全部在你的设备上完成。

为什么第一次加载这么大?

工具会在你第一次打开页面时下载 FFmpeg WebAssembly 核心,约 31 MB。浏览器会缓存它,因此之后访问会立即启动。工作过程中不会再下载其他内容。

我能加载哪些视频格式?

任何该 FFmpeg 构建能解码的格式,涵盖 MP4、MOV、WebM、MKV、AVI 以及大多数其他常见容器。对特定编解码器的支持仍取决于该构建,因此如果某个文件失败,请先尝试把它转换为采用 H.264 的 MP4。

为什么 GIF 编码很慢?

单线程的 WebAssembly 构建比桌面上的 FFmpeg 慢好几倍。请把片段保持简短,使用每秒 8 到 12 帧、宽度 320 到 480 像素,以获得更快的结果。

如何选择一段范围而不是单帧?

点击你想要的第一帧,然后点击靠后的一帧。这两个标记定义了范围,它们之间的帧会被高亮,GIF 会从起始时间戳编码到结束时间戳。

我能以原始分辨率保存某一帧吗?

能。胶片条只显示小预览,但保存帧会从视频中重新读取那个确切的时间戳,并以全分辨率导出为 PNG 或 JPEG。

GIF 会循环吗?

会。GIF 在写入时启用了循环,因此它会在浏览器和聊天应用中持续重复。