SS 工具箱
SS 工具箱
所有数据均在本地处理

视频转 GIF — 浏览器内截取片段、调帧率,不上传

在浏览器里把视频转成 GIF:选好起止时间、设 1–60 帧率、缩放尺寸,再调调色板颜色与抖动。文件不会上传。只输出 GIF,一次一个文件。

这个视频转 GIF 工具实际能做什么

  1. 视频文件不离开浏览器

    选择、拖入或粘贴视频后,解码和编码都在本机完成,不上传、不需要账号。但工具本身首次使用要从 CDN 下载 FFmpeg.wasm 核心(约 30.6 MB)或 JS 编码器 worker,所以不能完全离线使用。

  2. 精确截取需要的几秒

    在时间轴上按 0.01 秒精度设置起点和终点,也可以把当前播放位置标记为起止;倍速 0–10 倍(0.25 步进),长镜头能压成短循环。

  3. 帧率和尺寸都可调

    帧率 1–60(默认 12)。宽、高填 -1 表示保持原比例,只设一边会自动推算另一边;转换前会显示最终输出尺寸。

  4. 用调色板和抖动控制体积

    颜色数可选 255、128、64、32、24、16、8、4;抖动可选 none、sierra2_4a、bayer、floyd_steinberg。没有码率或压缩质量滑杆,也不会预估目标体积。

  5. 两种编码引擎,有进度可中断

    默认用 FFmpeg.wasm(palettegen + paletteuse)编码,也可以切到纯 JS 编码器。转换时有进度条和停止按钮,完成后显示 GIF 实际体积并提供直接下载。

视频转 GIF 常见问题

支持哪些视频格式和浏览器?

选择框接受浏览器标记为 video/* 的文件,拖放还额外接受 .mp4 / .mov。最快路径是 MP4/MOV 走 MP4Box + WebCodecs(Chrome/Edge 一类浏览器);失败会自动回退到 video 标签逐帧 seek,再失败回退到 FFmpeg.wasm 解码。其它容器能不能用取决于这些回退,实际表现会随浏览器和编码格式不同。

视频会上传到服务器吗?

不会。视频数据只留在当前标签页。但首次使用需要联网从 unpkg 下载 FFmpeg.wasm 核心(约 30.6 MB)或 modern-gif worker,下载完成后转换本身在本机进行,不能完全离线。

有文件大小或时长限制吗?

代码里没有硬性上限,真正的限制是内存:每帧按原始 RGBA 缓存,约等于 宽×高×4 字节×帧数。600×600、250 帧约 343 MB。界面在宽或高超过 600、帧数超过 250 时会提示;出现 allocation failed 说明要降低尺寸、帧率或时长。

为什么转换很慢,页面还会卡?

抓帧、缩放和 RGBA 拼装在主线程完成,默认 FFmpeg 核心是单线程(不使用 SharedArrayBuffer),分辨率越高、帧率越大越明显。编码本身在工作线程里,但界面仍可能变卡;有些机器切到 JS 编码器会更快。

能预估或限制 GIF 体积吗?

不能。转换完成后才会显示实际体积,事前没有预估。想压小可以缩短片段、降低帧率、缩小宽高、减少颜色数或更换抖动方式。

支持哪些输出格式?能批量转换吗?

只有动图 GIF,一次一个文件。没有 MP4、WebP、APNG,不保留音频,没有批量队列,也不能一次转多个文件;结果是单个下载链接加页面预览。

手机和平板能用吗?

可以但不稳:移动端内存更紧、WebCodecs 支持不一致,长视频或高分辨率经常失败。真要用就保持片段短、输出尺寸小、帧率低;桌面 Chrome 或 Edge 最可靠。

相关工具
赞助MindElixir