字幕动图生成器-说明
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. 基本使用流程
- 双击运行
SubGIFMaker.exe。 - 先点击「设置」,确认预览硬解、预览分辨率、多线程加速、字幕合并间隔等参数。
- 点击左侧的「加载视频」,选择需要制作 GIF 的视频文件。
- 点击左侧的「加载 SUP」,选择对应的
.sup字幕文件。 - 等待字幕导入完成。
- 在左侧「字幕条目」中点击一条字幕。
- 中间预览区会自动准备预览缓存,并默认播放。
- 如果只想导出其中一段,调整预览下方的起始帧和结束帧。
- 在右侧设置导出参数和输出文件夹。
- 点击「导出 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. 预览范围进度条
预览窗口下方的进度条表示当前选中字幕的进度,不是整个视频的进度。

进度条包含这些元素:
| 元素 | 含义 |
|---|---|
| 绿色区域 | 该帧已经完成预览缓存。 |
| 蓝色起始标记 | 当前预览和导出的起始帧。 |
| 红色结束标记 | 当前预览和导出的结束帧。 |
| 黄色竖线标记 | 当前正在预览的帧。 |
| 下方三位数字 | 当前帧序号,例如 000、001、025。 |
起始帧和结束帧可以通过两种方式调整:
- 直接拖动进度条上的起始/结束标记。
- 修改进度条左右两侧的帧号输入框。
导出 GIF 时,只导出这个起止帧范围对应的片段,并且结束帧会包含在导出范围内。
8. 导出 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 的顺序包括:
- exe 同级目录下的
ffmpeg/ - exe 同级目录下的
bin/ - exe 同级目录下的
tools/ffmpeg/ - 系统 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。