简短回答:MKVToolNix 可以提取存储在 MKV 文件内部的字幕轨道。其 mkvextract 命令可以将 SRT、ASS 等文本轨道,或蓝光 PGS、DVD VobSub 等图像轨道,写入单独文件。它不执行 OCR。如果文字已经绘制进视频帧,或者你提取了图像轨道后需要可编辑文字,就需要在 MKVToolNix 之后增加 OCR 步骤。GeekLink 的免费图像字幕转换器目前接受蓝光 .sup/PGS 文件;DVD VobSub 的 .idx/.sub 文件需要支持 VobSub 的 OCR 工具。
图片里能看到字幕,但没有可用的字幕轨道?GeekLink 可在本地读取硬字幕,并在 Mac 或 Windows 上导出带时间轴的 SRT。
试用 GeekLink首先,检查你拥有哪种字幕
不要一上来就猜命令。先确认字幕是作为流存在,还是只是视频画面中的像素。你可以用 mkvmerge 检查容器:
mkvmerge -i "episode.mkv"
你可能会看到类似这样的输出:
Track ID 0: video (V_MPEG4/ISO/AVC)
Track ID 1: audio (A_AAC)
Track ID 2: subtitles (S_TEXT/UTF8)
Track ID 3: subtitles (S_HDMV/PGS)
| 轨道或结果 | 含义 | 下一步 |
|---|---|---|
S_TEXT/UTF8 | 文本字幕,通常为 SRT | 直接用 mkvextract 提取,或使用 GeekLink 的 Embedded Sub 操作 |
S_TEXT/ASS 或 S_ASS | 带样式的 ASS/SSA 文本字幕 | 提取为 ASS 以保留样式,或让 GeekLink 创建源语言 SRT |
S_HDMV/PGS | 蓝光字幕图像 | 提取 SUP 文件,然后使用 GeekLink 的免费蓝光 OCR 转换器 |
S_VOBSUB | DVD 字幕图像 | 提取 IDX/SUB 文件对,然后使用支持 VobSub 的 OCR 工具 |
| 没有字幕轨道 | 不存在字幕流;可见文字可能已经烧录进视频 | 对视频帧使用 OCR |
这个区别解释了为什么很多人搜索“MKVToolNix extract subtitles”却没有得到预期结果。播放器可以显示字幕,即使文件里没有可编辑的字符。播放器可能正在渲染位图轨道,也可能视频已经把文字永久合成到每一帧中。
如何用 mkvextract 提取 SRT 或 ASS
知道轨道 ID 后,使用 tracks 模式。ID 是 mkvmerge -i 打印出来的编号,不是媒体播放器中字幕的排序位置:
# Track 2 is an SRT-compatible text track
mkvextract "episode.mkv" tracks 2:english.srt
# Track 4 is an ASS track; keep it as ASS to retain styling
mkvextract "episode.mkv" tracks 4:styled.ass
# Extract two language tracks in one command
mkvextract "episode.mkv" tracks 2:english.srt 3:spanish.srt
对于文本轨道,这正是 MKVToolNix 擅长的工作:识别 Matroska 容器中的流,并将其写入实用的字幕格式。导入视频后,GeekLink 也可以完成流程中的这一部分:它的 Embedded Sub 操作会检测文本字幕轨道,让你选择其中一条,并创建源语言 SRT,供编辑或翻译使用。官方文档也列出了 PGS 和 VobSub 的提取方式,但这些输出是图像数据,而不是可编辑的文字。
一个实用细节是:输出格式由轨道类型决定,而不是由你选择的文件扩展名决定。把 PGS 轨道重命名为 .srt 并不会把像素变成字符,只会让图像文件拥有一个误导性的名称。
为什么 PGS 和 VobSub 仍需要 OCR
PGS 和 VobSub 都是合法的字幕轨道,因此 mkvextract 可以成功将它们提取出来。但每条字幕提示都是一张小型渲染图像。蓝光的 .sup 文件,或 DVD 的 .idx/.sub 文件对,存储的是字幕图像,而不是底层的文字字符串。
这意味着整个流程包含两个独立任务:
- 解复用轨道:使用 MKVToolNix 将原始字幕图像从 MKV 中取出。
- 识别字符:使用能够接受所提取图像格式的 OCR 工具。GeekLink 的免费转换器接受蓝光
.sup/PGS;DVD VobSub 的.idx/.sub需要另一条支持 VobSub 的处理路径。
MKVToolNix 对第一步仍然很有用,尤其是你想保留光盘抓取文件中的官方字幕轨道时。它本身不是 OCR 引擎。对于蓝光 PGS,将提取出的 .sup 文件放入 GeekLink,即可免费生成可编辑的 SRT。当前转换器不能直接接受 DVD VobSub 的 .idx/.sub 文件对。
如果字幕已经烧录进视频怎么办?
如果 mkvmerge -i 没有显示字幕轨道,但视频播放时能看到文字,那么这些文字很可能已经硬编码——它们是视频流中的像素。MKVToolNix 没有可供提取的字幕轨道。重新封装文件、修改扩展名或再次运行 mkvextract,都无法恢复从未以文字形式存储的数据。
这也是 MKVToolNix 项目官方支持论坛所确认的边界:永久存在于视频图像中的字幕不是 MKVToolNix 的处理对象。接下来应使用 OCR,读取选定视频帧中的可见字符。
在 Mac 或 Windows 上,GeekLink 可以完成硬字幕视频的 OCR 步骤:
- 直接打开 MKV 并选择字幕区域。
- 在本地读取视频帧中的字幕文字。
- 将重复帧合并为带时间轴的字幕行。
- 导出 SRT、翻译结果,或将新的字幕层烧录进视频。
关键不在于某个工具取代另一个工具。MKVToolNix 提取已存储的轨道;GeekLink 处理那些必须从图像中识别字幕的情况。
MKVToolNix 与字幕 OCR:应该使用哪个工具?
它们解决的是同一问题的不同层面。应根据字幕数据实际存放的位置来选择:
| 输入内容 | MKVToolNix | GeekLink |
|---|---|---|
| 嵌入式 SRT 或 ASS 轨道 | 最适合:直接提取 | 通过 Embedded Sub 将其提取为源语言 SRT |
| 嵌入式 PGS/SUP 轨道 | 提取原始图像轨道 | 使用 GeekLink 免费的蓝光 OCR 转换器创建 SRT |
| 嵌入式 VobSub IDX/SUB 轨道 | 提取原始图像轨道 | 需要支持 VobSub 的 OCR 工具;目前还不能直接输入 GeekLink |
| 视频帧中的硬字幕 | 无法提取 | 读取可见文字并导出带时间轴的 SRT |
| 需要翻译或烧录替换字幕 | 在提取轨道后结束 | 继续完成审核、翻译和导出 |
| 偏好的工作流 | 命令行解复用和精确控制轨道 | 用于 OCR 和字幕制作的一站式桌面工作流 |
当文字已经作为字幕轨道存在时,使用 MKVToolNix。它免费、专注,而且能出色地提取流,不需要 OCR 引擎重新解读。输入是文字图像时,使用 OCR。对于蓝光 PGS/SUP,GeekLink 的图像字幕 OCR 转 SRT 转换对所有人免费。DVD VobSub 是独立的 .idx/.sub 格式,目前还不能直接输入此转换器。
常见问题
MKVToolNix 能从 MKV 中提取字幕吗?
可以,只要字幕是以轨道形式存储的。运行 mkvmerge -i input.mkv 找到轨道 ID,然后对文本轨道使用 mkvextract input.mkv tracks TRACK_ID:output.srt。PGS 和 VobSub 轨道也可以提取,但输出会是图像。蓝光 PGS/SUP 可以再交给 GeekLink 的免费图像字幕转换器;DVD VobSub 则需要支持 VobSub 的 OCR 工具。
MKVToolNix 能提取硬字幕吗?
不能。硬字幕是视频流中的像素,不是独立的 Matroska 轨道。MKVToolNix 可以检查和提取流,但不会从视频帧中读取字符。请改用字幕 OCR。
GeekLink 能提取嵌入式 SRT 字幕吗?
可以。导入视频,点击视频上的 Embedded Sub 标记;如果有多个轨道,选择文本字幕轨道,GeekLink 就会创建源语言 SRT,供编辑或翻译。
为什么 MKVToolNix 给我的是 SUP 或 IDX/SUB 文件,而不是 SRT?
因为源轨道是基于图像的。SUP 常用于蓝光 PGS 字幕,而 DVD VobSub 提取后会得到 IDX/SUB 文件对。要把这些字幕图像转换成可编辑的 SRT 文本,必须使用 OCR。GeekLink 的免费转换器接受蓝光 SUP/PGS 格式;DVD IDX/SUB 文件对则需要支持 VobSub 的 OCR 路径。
GeekLink 支持 VobSub 字幕吗?
当前的免费蓝光图像字幕转换器接受 .sup/PGS 文件。DVD VobSub 使用不同的 .idx/.sub 文件对,目前还不能直接输入。请用 MKVToolNix 提取后,再使用支持 VobSub 的 OCR 工具。
MKVToolNix 和 mkvextract 是一回事吗?
MKVToolNix 是工具套件;mkvextract 是套件中的命令行程序,用于提取轨道和其他 Matroska 数据。要使用可预测的提取命令,请先用 mkvmerge -i 确定轨道,再用 mkvextract 将其写出。
在 Mac 上处理硬字幕,最简单的方案是什么?
如果字幕可见于画面中且不存在字幕轨道,应使用本地 OCR 工作流,而不是 MKVToolNix。GeekLink 可以从视频中读取选定字幕区域,创建带时间轴的 SRT,并在 Mac 上继续进行翻译或烧录。