简短回答: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/ASSS_ASS带样式的 ASS/SSA 文本字幕提取为 ASS 以保留样式,或让 GeekLink 创建源语言 SRT
S_HDMV/PGS蓝光字幕图像提取 SUP 文件,然后使用 GeekLink 的免费蓝光 OCR 转换器
S_VOBSUBDVD 字幕图像提取 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 文件对,存储的是字幕图像,而不是底层的文字字符串。

这意味着整个流程包含两个独立任务:

  1. 解复用轨道:使用 MKVToolNix 将原始字幕图像从 MKV 中取出。
  2. 识别字符:使用能够接受所提取图像格式的 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 步骤:

  1. 直接打开 MKV 并选择字幕区域。
  2. 在本地读取视频帧中的字幕文字。
  3. 将重复帧合并为带时间轴的字幕行。
  4. 导出 SRT、翻译结果,或将新的字幕层烧录进视频。

关键不在于某个工具取代另一个工具。MKVToolNix 提取已存储的轨道;GeekLink 处理那些必须从图像中识别字幕的情况。

MKVToolNix 与字幕 OCR:应该使用哪个工具?

它们解决的是同一问题的不同层面。应根据字幕数据实际存放的位置来选择:

输入内容MKVToolNixGeekLink
嵌入式 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 上继续进行翻译或烧录。

相关文章