SubGIFMaker 使用说明

重要警示:该软件为纯 AI 生成,请酌情使用。

SubGIFMaker 是一款用于把视频中的 PGS/SUP 图形字幕片段导出为带字幕 GIF 的 Windows 便携工具。它适合从视频和外部 .sup 字幕中选择某一条字幕,预览字幕与画面的同步效果,并按选定范围导出 GIF。

建议首次打开软件后,先进入「设置」完成预览、硬解、字幕合并等参数确认,再开始加载视频和字幕。

软件界面

1. 首次使用前建议先设置

点击预览控制区的「设置」按钮,可以打开设置窗口。设置保存后会写入 exe 同级目录下的 config/config.json

设置

1.1 预览硬解

「预览硬解」用于选择预览视频画面的解码方式,只影响预览,不影响 GIF 导出。

选项 说明
Auto 自动测速 D3D11VA、QSV、CUDA,选择当前视频下实测最快的可用后端。
CPU 使用 CPU 解码,兼容性高,但可能更慢。
D3D11VA Windows Direct3D 11 硬件解码,常见于 Intel、AMD、NVIDIA 平台。
QSV Intel Quick Sync Video,主要用于 Intel 核显或支持 QSV 的 Intel 平台。
CUDA NVIDIA CUDA,主要用于 NVIDIA 显卡。

推荐普通用户保持 Auto。 Auto 会在加载视频后比较可用硬解后端,并选择实测更快的方案。

自动判断预览硬解

1.2 预览模式

选项 说明
一致性优先 更注重预览同步和兼容性,推荐默认使用。
实验性速度优先 尝试提升预览准备速度,不同机器和视频编码下效果可能不同。

1.3 预览分辨率

可选值为 480、720、1080,默认值为 480。

预览分辨率只影响中间预览区的缓存和显示速度,不影响最终 GIF 导出。GIF 导出分辨率由右侧「导出参数」里的「宽度」决定。

1.4 多线程加速

「多线程加速」用于控制预览缓存、字幕导入 PNG 编码等任务的并行数量。

  • 默认值为 2。
  • 最大值不会超过本机 CPU 逻辑核心数。
  • 数值越大,处理速度可能越快,但 CPU、磁盘和内存压力也会增加。

建议多线程加速不超过本机 CPU 逻辑核心数的一半,如本机为6核心12线程,建议该值最大设置为6线程。 若出现系统卡顿、风扇明显升高或磁盘占用过高,可以调低。

1.5 预览暂存缓存容量

预览缓存会写入 exe 同级目录下的 temp/ 文件夹。缓存容量用于限制这些临时 PNG 和时间轴数据的最大占用空间。

缓存的作用:

  • 已经预览过的字幕再次点开时,加载更快。
  • 切换字幕后再切回来,不必重复生成所有预览帧。

1.6 合并间隔小于 ms

PGS/SUP 中,一些动态字幕会由很多连续图片帧组成。软件会根据相邻图片帧的时间间隔,把它们合并为一条字幕。 特效字幕通常为一些连续的短时帧组成,前后帧一般间隔为0ms,但存在同一场景下的两段特效字幕之间存在间隔,为将统一场景下的所有特效字幕展示,需要进行和并。

当前版本的合并规则:

  • 下一帧开始时间与上一帧结束时间的间隔小于该值,就合并为同一条字幕。

默认值为 1 ms。

如果连续字幕没有合并到一起,通常需要增大此值后点击「保存并重整字幕」。

1.7 短帧阈值和连续短帧数

这两个参数用于判断字幕类型。

参数 默认值 说明
短帧阈值 ms 120 单帧持续时间小于等于该值时,视为短帧。
连续短帧数 2 一条字幕中至少出现多少个连续短帧,才标记为特效字幕。

如果某条合并字幕中存在连续短时间图片帧,例如多个 40 ms 左右的帧,通常会被标记为「特效字幕」。其余字幕通常标记为「对白字幕」。

1.8 保存设置

修改设置后点击「保存并重整字幕」。

该按钮不仅保存设置,还会按新的字幕合并和分类参数重新整理当前字幕。

2. 便携版目录结构

便携版解压后即可使用,不需要安装 Go、Node、Wails 或 FFmpeg 环境。推荐保持目录结构不变:

SubGIFMaker.exe
ffmpeg/
  ffmpeg.exe
  ffprobe.exe
webview2-runtime/
config/
data/
  webview2/
temp/
output/

各目录用途:

目录 用途
config/ 保存软件设置,例如预览参数、字幕整理参数、输出目录。
data/webview2/ 保存内置 WebView2 的用户数据。
temp/ 保存字幕导入图片、预览缓存、导出临时文件。
output/ 默认 GIF 输出目录。
ffmpeg/ 内置 FFmpeg 和 FFprobe。
webview2-runtime/ 内置 WebView2 Fixed Runtime。

软件会优先使用 exe 同级目录下的这些文件夹。退出软件或重整字幕时,会清理相关预览和字幕缓存。

3. 基本使用流程

  1. 双击运行 SubGIFMaker.exe
  2. 先点击「设置」,确认预览硬解、预览分辨率、多线程加速、字幕合并间隔等参数。
  3. 点击左侧的「加载视频」,选择需要制作 GIF 的视频文件。
  4. 点击左侧的「加载 SUP」,选择对应的 .sup 字幕文件。
  5. 等待字幕导入完成。
  6. 在左侧「字幕条目」中点击一条字幕。
  7. 中间预览区会自动准备预览缓存,并默认播放。
  8. 如果只想导出其中一段,调整预览下方的起始帧和结束帧。
  9. 在右侧设置导出参数和输出文件夹。
  10. 点击「导出 GIF」。

导出的文件默认按字幕序号命名,例如:

001.gif
002.gif
003.gif

如果没有勾选「覆盖同名文件」,且目标目录已有同名文件,软件会自动追加编号:

001_01.gif
001_02.gif
001_03.gif

4. 加载视频和 SUP 字幕

左侧区域用于加载视频、加载 SUP 字幕,并浏览导入后的字幕列表。

4.1 加载视频

点击「加载视频」,选择需要制作 GIF 的视频文件。加载后,中间预览区下方会显示格式、时长、帧率、色彩格式等信息。

4.2 加载 SUP

点击「加载 SUP」,选择对应的 .sup 字幕文件。加载时会出现字幕导入进度。

正在加载字幕

导入进度说明:

  • 总数为原始 PGS 图片帧数。
  • 已导入数量表示已经解析、渲染并写出 PNG 的帧数。

导入完成后,软件会按设置中的「合并间隔小于 ms」整理字幕列表。

字幕加载完成

5. 字幕条目和分类

每条字幕显示的信息包括:

  • 第一行:字幕开始时间。
  • 第二行:字幕结束时间。
  • 第三行:字幕持续时长,或合并字幕的持续时长与「展开」按钮。
  • 缩略图:只显示字幕图片本体,不叠加视频背景。

左侧列表上方可以筛选字幕:

筛选项 含义
全部 显示所有字幕。
对白字幕 显示普通对白类字幕。
特效字幕 显示由连续短帧组成的动态字幕或特效字幕。

字幕分类

如果一条字幕由多个连续图片帧合并而成,会显示「展开」。点击后可以查看该合并字幕内部的每一帧。

6. 预览字幕

点击某条字幕后,中间预览区会自动开始准备预览缓存,并默认播放。播放到当前字幕片段末尾后,会在选定范围内循环播放。

当前版本的预览逻辑:

  • 预览帧以视频真实帧时间轴为基准,而不是以字幕图片帧为基准。
  • 「上一帧」和「下一帧」按视频帧前后移动。
  • 已生成的预览帧会缓存在 temp/ 中。
  • 切换到其他字幕后再切回已缓存字幕,通常不需要重新生成所有帧。

字幕预览

预览区下方的视频信息:

信息 说明
格式 视频容器格式,例如 Matroska。
时长 视频总时长。
帧率 视频帧率。
色彩格式 根据视频色彩信息显示 SDR 或 HDR。

时间显示统一使用 hh:mm:ss.ms 格式,例如 00:02:06.417

7. 预览范围进度条

预览窗口下方的进度条表示当前选中字幕的进度,不是整个视频的进度。

进度条等内容

进度条包含这些元素:

元素 含义
绿色区域 该帧已经完成预览缓存。
蓝色起始标记 当前预览和导出的起始帧。
红色结束标记 当前预览和导出的结束帧。
黄色竖线标记 当前正在预览的帧。
下方三位数字 当前帧序号,例如 000001025

起始帧和结束帧可以通过两种方式调整:

  • 直接拖动进度条上的起始/结束标记。
  • 修改进度条左右两侧的帧号输入框。

导出 GIF 时,只导出这个起止帧范围对应的片段,并且结束帧会包含在导出范围内。

8. 导出 GIF

右侧区域用于控制 GIF 输出效果。

GIF导出

主要项目:

项目 说明
预设 快速套用常用参数。
帧率 GIF 每秒保留多少帧。
宽度 GIF 输出宽度,高度按视频比例自动计算。
颜色数 GIF 调色板颜色数量。
抖动算法 GIF 降色时的颜色过渡方式。
覆盖同名文件 是否直接覆盖已有同名 GIF。
选择输出文件夹 设置 GIF 保存目录。
预估大小 根据当前范围和参数估算 GIF 大小。
任务状态 显示导出进度、完成状态或错误信息。

点击「导出 GIF」后,软件会根据当前选中字幕和起止帧范围导出 GIF。

导出范围说明:

  • 只导出当前选中字幕。
  • 只导出进度条起始帧到结束帧之间的片段。
  • 起始帧和结束帧都会包含在导出范围内。
  • 如果没有等待预览缓存准备完成,软件会提示先等待当前字幕预览缓存生成完成。

输出目录说明:

  • 默认输出到 exe 同级目录下的 output/
  • 如果你手动选择过输出文件夹,后续会默认使用该文件夹。
  • 如果指定目录被删除或无法访问,软件会回退到默认 output/

9. 导出参数详解

9.1 预设

软件提供三个常用预设:

预设 帧率 宽度 颜色数 抖动算法 适合场景
平衡 15 fps 640 64 关闭 默认推荐,兼顾画质和体积。
高质量 视频帧率向下取整 720 128 关闭 更清晰、更流畅,文件更大。
小体积 12 fps 360 64 关闭 适合聊天、网页上传等体积敏感场景。

例如源视频为 23.976 fps 时,「高质量」预设会使用 23 fps。源视频为 29.97 fps 时,会使用 29 fps

当你手动修改帧率、宽度、颜色数或抖动算法后,预设会变为「自定义」。

9.2 帧率

帧率决定 GIF 每秒包含多少帧。

  • 数值越高,动作越流畅。
  • 数值越高,文件体积通常越大。
  • GIF 的帧率不一定需要和源视频完全一致,普通分享场景一般使用 12 到 15 fps 即可。

9.3 宽度

宽度决定 GIF 输出分辨率。高度会按源视频比例自动计算。

常见选择:

宽度 特点
360 文件小,适合快速分享。
640 日常推荐,清晰度和体积较均衡。
720 更清晰,体积更大。

9.4 颜色数

GIF 最多只能使用 256 色。颜色数越高,颜色保留越好,但文件体积也更大。

可选值:

颜色数 说明
16 体积最小,容易出现色带。
32 适合颜色较少的画面。
64 默认推荐。
128 画质更好,体积增加。
256 颜色最多,体积通常最大。

9.5 抖动算法

把视频转换为 GIF 时,颜色会被压缩到有限调色板。抖动算法用于减少色带和断层。

选项 说明
关闭 不做抖动,边缘更干净,体积通常更可控。
Bayer 规则网格抖动,颗粒分布较规律。
Sierra 2-4A 误差扩散抖动,渐变更自然,但可能增加颗粒感和体积。

当前预设默认都使用「关闭」,因为字幕动图通常更重视字幕边缘清晰和文件体积。

10. 预览和缓存

10.1 为什么首次预览较慢

第一次点击某条字幕时,软件需要完成:

  • 读取该字幕片段的视频帧时间轴。
  • 调用 FFmpeg 抽取视频帧。
  • 叠加对应的 PGS 字幕 PNG。
  • 把预览帧写入 temp/ 缓存。

所以首次预览会比较慢。缓存完成后,再次切回该字幕通常会快很多。

10.2 缓存什么时候清理

以下情况会清理预览缓存和相关临时文件:

  • 退出软件。
  • 重新导入视频。
  • 重新导入字幕。
  • 点击「保存并重整字幕」。
  • 缓存超过设置中的容量限制。

10.3 预览和导出是否共用参数

预览和导出已经解耦:

  • 预览使用「设置」里的预览硬解、预览分辨率、多线程加速和缓存容量。
  • 导出使用右侧「导出参数」里的预设、帧率、宽度、颜色数和抖动算法。

修改导出参数不会改变预览分辨率或预览缓存策略。

11. HDR 和颜色

软件不会主动把 HDR 映射成 SDR,而是尽量保持视频原始画面。

因此:

  • HDR 视频在普通 SDR 显示环境中预览,可能看起来偏灰。
  • 导出的 GIF 也可能和播放器中的 HDR 观感不同。
  • GIF 格式本身不支持 HDR,也最多只有 256 色。

如果你看到 GIF 和原视频颜色不完全一致,通常与以下因素有关:

  • GIF 颜色数限制。
  • 调色板生成和抖动算法。
  • HDR 到普通显示环境的显示差异。
  • 不同图片查看器的色彩管理差异。

12. 常见问题

12.1 加载视频后无法识别 FFmpeg

确认目录中存在:

ffmpeg/ffmpeg.exe
ffmpeg/ffprobe.exe

软件查找 FFmpeg 的顺序包括:

  1. exe 同级目录下的 ffmpeg/
  2. exe 同级目录下的 bin/
  3. exe 同级目录下的 tools/ffmpeg/
  4. 系统 PATH

便携版建议直接保留 ffmpeg/ 目录。

12.2 预览播放卡顿

可以尝试:

  • 等待进度条变为绿色,说明缓存完成。
  • 在「设置」中把预览分辨率调低到 480。
  • 把预览硬解设为 Auto,让软件测速选择最快后端。
  • 适当增加「多线程加速」,例如从 2 调到 4。
  • 如果系统明显卡顿,反而可以降低多线程数量。
  • 确认 temp/ 所在磁盘有足够空间并且读写速度正常。

12.3 Auto 为什么没有选 CUDA

Auto 不按显卡品牌优先,而是按当前视频、当前设置下的实测抓帧耗时选择。

例如 NVIDIA 显卡上可能出现:

  • CUDA 可用,但 D3D11VA 对当前视频更快。
  • D3D11VA 可用,但 CUDA 对当前视频更快。
  • QSV 不可用,因为没有可用 Intel Quick Sync 环境。

设置窗口会显示每个后端的测速结果,建议以软件实测结果为准。

12.4 字幕没有合并成预期的一条

当前版本只按时间间隔合并。请检查「合并间隔小于 ms」是否太小。

例如某些字幕帧之间间隔为 50 ms,如果设置为 1 ms 或 10 ms,就不会合并。需要增大该值后点击「保存并重整字幕」。

12.5 字幕被错误标记为特效字幕

打开「设置」,调整:

  • 短帧阈值 ms
  • 连续短帧数

如果阈值太大,普通字幕也可能被识别为短帧。调小阈值或增大连续短帧数,可以减少误判。

12.6 预估大小和实际 GIF 大小不同

预估大小是根据持续时间、帧率、宽度、颜色数和抖动算法计算的近似值。

实际大小还会受这些因素影响:

  • 画面复杂度。
  • 运动幅度。
  • 字幕面积。
  • 颜色分布。
  • 是否存在大量渐变或噪点。

所以预估值只能作为参考,不代表最终文件一定完全一致。

12.7 软件目录下的 temp 很大

temp/ 保存预览缓存和临时字幕图片。正常退出软件、重整字幕或重新导入素材时会清理相关缓存。

如果软件异常退出,可能留下临时文件。确认软件未运行后,可以手动清空 temp/

13. 推荐使用习惯

  • 新用户建议先打开「设置」,确认预览硬解、预览分辨率、多线程、合并间隔等参数。
  • 普通 GIF 推荐使用「平衡」预设。
  • 对画质要求高时使用「高质量」预设。
  • 需要上传到限制体积的平台时使用「小体积」预设。
  • 预览卡顿时先降低预览分辨率,而不是降低导出宽度。
  • 调整字幕合并规则后,记得点击「保存并重整字幕」。
  • 交付或移动软件时,尽量整体移动整个便携目录,不要只移动 exe。