简短回答:Subtitle Edit 的 OCR 读取的是图像字幕轨道——DVD 的 VobSub、蓝光的 PGS,以及混流进 MKV 文件里的同类轨道。它不读取已经烧录进视频画面本身的文字。如果你的 MP4 显示的是关不掉的字幕,那文件里就没有可供 Subtitle Edit 导入的字幕轨道,所以它的 OCR 工具根本没有机会运行。提取那些文字需要另一种工具——扫描视频帧的工具——本文正是要讲清楚哪些工具能做到这一点。

这个问题在 Subtitle Edit 社区里反复出现:有人手上有一个屏幕上明明有字幕的 .mp4,记得有个「Import/OCR subtitles」菜单,却弄不明白为什么点了没反应。这种困惑可以理解,因为这两个功能都叫 OCR——但它们解决的是两个非常不同的问题。我们把它们拆开来看。

Subtitle Edit 的 OCR 到底做什么?

DVD 和蓝光并不把字幕存成文本,而是存成图像:每一行字幕都是一张带时间戳的小图片,位于自己独立的轨道里,和视频、音频流并列。DVD 字幕用 VobSub 格式(.sub/.idx),蓝光用 PGS(.sup),当你抓取光盘时,两者都可以被混流进一个 MKV 容器。

因为这些图片位于一条独立的轨道里,Subtitle Edit 可以逐张走一遍,对每张图片做 OCR,然后把可编辑的文字交给你,并保留原有时间轴。这就是 Subtitle Edit 的 OCR 窗口的用途,而它在这件事上确实做得很好:它支持多种 OCR 引擎,并保留每一条字幕的原始时间轴。

关键点在于:在上面每一种情况里,文件内部都已经存在一条字幕轨道。 Subtitle Edit 的 OCR 是把一种字幕格式(图片)转换成另一种(文本)。它从不去看电影画面本身。

「Import/OCR subtitles from video」菜单去哪了?

如果你记得有个 Import/OCR 选项、却找不到它或让它用不起来,它实际做的是:它在视频容器内部寻找图像字幕轨道——比如 MKV 里的一条 PGS 轨道——并打开它做 OCR。它读的是容器的轨道列表,而不是画面。

把它用在一个典型的带烧录字幕的 .mp4 上,它什么也找不到,因为根本没有可找的东西:文件里有一条视频流、一条音频流,完全没有字幕轨道。你在屏幕上看到的文字,从任何技术意义上讲都不再是字幕了——它是画面的一部分,跟背景里的一张脸或一盏灯没有区别。

烧录字幕(硬字幕)是另一个问题

当字幕被烧录进去时——也叫硬字幕——文字在编码时就被渲染到了帧上。制作这个文件的人把字幕永久地并入了画面。这带来三个后果:

  • 没有轨道可导入。 容器工具(Subtitle Edit、ffmpeg、MKVToolNix)都会报告同一件事:这个文件没有字幕。
  • 没法把它们关掉。 播放器只能开关轨道;这里根本没有轨道。
  • 提取变成了一个视频分析问题。 要还原这些文字,工具必须扫描真正的帧:检测一行何时出现、何时消失(这就成了你的时间轴),识别出数百张几乎相同的帧显示的是同一行(这样你得到的是一条字幕,而不是三百条重复),并把文字和背后一切正在移动的东西分离开。

那套扫帧流程和解码一条打包整齐的图像轨道是本质上不同的工作,这就是为什么 Subtitle Edit——一个字幕文件编辑器——不做这件事,也是为什么「OCR」在两种语境下含义不同。这不是猜测:Subtitle Edit 团队自己在 GitHub 上说过,「硬字幕的检测与提取不是一件简单的事,所以不会在 SE 中实现」,而一个 关于视频帧 OCR 的功能请求 也被以 wontfix 关闭了。

怎么判断你的视频是哪一种字幕

在任意能显示字幕轨道的播放器(VLC、IINA、mpv)里做一个十秒的检查:

  1. 打开视频,查看字幕轨道菜单(在 VLC 里:字幕 → 字幕轨道)。
  2. 如果列出了一条轨道、并且你能把它关掉,那你的字幕是真正的轨道——内嵌的、可开关字幕。Subtitle Edit 通常能直接提取这些,而如果它们是图像格式的,它的 OCR 也能处理。
  3. 如果菜单是空的、但字幕仍在屏幕上,那它们就是烧录字幕。任何容器工具都帮不上忙;你需要帧 OCR。

这一个检查能省下大量白费的功夫,因为这两种情况看视频时一模一样,却需要完全不同的工具。

到底什么能提取烧录字幕?

一旦你确定文字是烧录进去的,现实可行的选项就是这些:

工具平台价格工作流
VideoSubFinder Windows 免费 多步骤:检测文字帧、导出图片、单独做 OCR、重建时间轴
videocr / VideOCR Windows、Linux 免费、开源 命令行或简单图形界面;单一工具,需一些配置
GeekLink macOS(Apple Silicon) 有免费档 一次搞定:拖入视频、框选字幕区域、导出带时间轴的 SRT

这三者读的都是视频帧而非容器,而这正是 Subtitle Edit 缺少的能力。哪一个合适,主要取决于你的平台,以及你能容忍多少手动操作:

  • VideoSubFinder 是资深的 Windows 工作流。它管用,但整条流程要你自己拼——帧检测、图片 OCR 和时间轴重建是彼此独立的阶段。
  • videocr / VideOCR 把帧 OCR 封装进一个开源工具,提供官方的 Windows 和 Linux 构建。
  • GeekLink 是一款原生 Mac 应用,整条流程一次跑完,全部在你自己的机器上:扫描视频、对烧录文字做 OCR、导出干净的 SRT。它还能批量处理多个视频,并在同一次运行中翻译提取出来的字幕。分步指南见 如何用 OCR 提取烧录字幕

与 Subtitle Edit 搭配最好的工作流

这一切都不会让 Subtitle Edit 变得没用——它只是处在流程的另一个阶段。实践中效果不错的工作流是:

  1. 提取: 对烧录字幕的视频运行一个帧 OCR 工具,导出 SRT。
  2. 打磨: 在你惯用的编辑器里打开那个 SRT——包括 Subtitle Edit——修正识别失误、调整时间轴、重新排版。输出是标准 SRT 文件,所以任何字幕编辑器都能打开。
  3. 交付: 把 SRT 作为可开关字幕轨道保留、翻译它,或用不同样式重新烧录进一个新视频。

更想全程留在 Subtitle Edit 里? 它社区推荐的工作流是:先运行 VideoSubFinder 检测出文字帧,然后通过 File > Import > Images 把那些图片载入 Subtitle Edit 并在里面做 OCR。这管用,但视频分析仍是由一个独立的帧检测工具完成的——Subtitle Edit 只在帧被提取出来之后才接手。

不管你用哪个提取器,都要预留一道校对。烧录文字上的 OCR 准确率很大程度上取决于字体、文字与背景的对比度,以及字幕行背后有多少运动。现实的目标是一份需要轻度清理的扎实草稿——而不是工具直接吐出的完美文件。

披露:GeekLink 是我们自己的产品。我们尽力让本文保持客观公正——Subtitle Edit 是一款出色的编辑器,这里描述的局限是它自己团队确认过的设计取舍,不是缺陷。用适合你平台的任意提取工具,然后在你最顺手的地方继续编辑。

常见问题

Subtitle Edit 能从视频里提取烧录字幕吗?

不能。Subtitle Edit 的 OCR 针对的是图像字幕轨道(VobSub、蓝光 PGS,以及 MKV 文件里的图像轨道),而不是烧录进视频画面里的文字。对于烧录字幕,你需要一个帧 OCR 工具,比如 VideoSubFinder、videocr/VideOCR,或 Mac 上的 GeekLink。

Subtitle Edit 能 OCR 哪些字幕格式?

DVD VobSub(.sub/.idx)、蓝光 PGS(.sup),以及这些图像轨道被混流进 MKV 之类容器时的同类轨道。在这些情况里,字幕都以图片形式存在于自己的轨道中,而这正是 Subtitle Edit 的 OCR 窗口转换成文本的对象。

为什么 Import/OCR 选项在我的 MP4 上不起作用?

因为那个功能是从容器内部导入图像字幕轨道,而一个典型的带烧录字幕的 MP4 根本没有字幕轨道——文字是视频像素的一部分。在 Subtitle Edit 看来,这个文件干脆就没有字幕。

在 Mac 上怎么提取烧录字幕?

GeekLink 是一款正为此打造的原生 Mac 应用:它扫描视频帧、对烧录文字做 OCR、导出带时间轴的标准 SRT,全程离线。VideoSubFinder 是 Windows 软件,所以在 Mac 上,现实的替代方案是在 Windows 环境里运行它,或使用一个基于 Python 的命令行工具。

烧录字幕上的 OCR 有多准?

这取决于源素材:高对比背景上的清晰字体识别得非常好,而花哨字体、低对比度和繁忙的运动背景会造成更多错误。不管你用哪个工具,都要预期需要校对结果——目标是一份扎实的草稿,而不是完美的文件。

之后我能在 Subtitle Edit 里编辑提取出来的 SRT 吗?

可以。帧 OCR 工具导出的是标准 SRT 文件,任何字幕编辑器都能打开——包括 Subtitle Edit。先用帧 OCR 工具提取,再在你已经熟悉的编辑器里打磨时间轴和文字。

相关文章