视频和字幕·字幕工具包
SubRip 的历史:DVD 翻录工具的输出如何变成 .srt
· 背景
字幕 srt 文件格式 时间码
SRT 以程序命名,而不是标准。这篇文章追溯了 SubRip 的 OCR 输出如何成为网络上最常见的字幕格式、为什么它没有正式规范以及这对当今的兼容性意味着什么。
为什么格式以程序命名? — SubRip 名称背后的日常难题
字母 SRT 是沿袭标记,而不是标准委员会的名称。他们指的是 SubRip,这是一种将字幕材料从光盘转换为定时文本的软件。这一起源有助于解释为什么该格式感觉像是实用程序的实际输出:紧凑的编号块,可以在普通编辑器中读取,周围没有大型元数据模型。
历史细节对于日常兼容性来说并不重要,重要的是结果:SRT 通过使用和实现而传播。因此,存储库将其视为一种传统格式,其现实世界的方言需要宽容的输入,而不是一种语法,其每个可接受的变体都可以从一个管理规范中引用。
SubRip 程序 — 使用字符识别将 DVD 字幕提取为文本的工具
DVD 字幕流是基于图像的,而不是普通的文本行,因此提取可编辑的单词需要字符识别或手动校正。 SubRip 与该提取工作流程相关联,其文本输出将识别的对话与显示它所需的时间配对。本文没有指定发布日期、作者或版本历史记录,因为这些详细信息不是由此处使用的存储库源建立的。
字符识别还解释了为什么 SRT 可以在结构上完美,但其文字仍然错误。 ToolAcre 解析提示边界并可以删除标记,但它既不执行光学识别也不纠正转录。历史渊源和当前转型是不同的工作。
输出格式 — 索引、时间码行、文本、空行以及为什么这种简单性得以传播
熟悉的输出形状有四个部分:数字索引、包含由箭头分隔的开始和结束时间戳的行、一个或多个文本行以及结束块的空行。它的优势在于可检查性。人们可以找到提示 40,读取其时间并编辑其文字,而无需专门的软件,而解析器可以将同一文档分成多个块。
ToolAcre 不信任索引作为身份。它在每个块中搜索箭头,数字成功地解析了提示本身,并将后面的每一行作为提示文本连接起来。在序列化时,它会从一个连续发出 SRT 索引,从而修复重复项和间隙,而不是将它们保留为历史文物。
没有标准,只有约定——缺乏规范如何导致方言和特定于玩家的容忍度
如果没有一个正式的 SRT 规范来管理每个制作者和播放器,约定就会成为兼容层。文件出现时带有逗号或句号分数、省略的小时、字节顺序标记、混合行结尾、丢失索引和格式错误的块。不同的参与者容忍不同的子集,因此在一个应用程序中运行的文件是该应用程序的证据,而不是普遍有效性的证明。
解析器通过接受常见的、明确的变化并报告它无法安全解释的错误来回答这个问题。它接受毫秒分隔符和可选的小时,去除前导标记,标准化行结尾并搜索时间戳行。它拒绝高于 59 的分钟或秒,而不是默默地移动提示,并记录 BAD_TIMESTAMP 或 NO_TIMESTAMP 而不是中止整个文件。
时间码中的逗号 — 一个小细节,一个大遗产
SRT 约定在三个毫秒数字之前写入一个逗号,如 00:01:02,500 中。该标点符号在视觉上很小,但在操作上很重要,因为 WebVTT 会写一个句号。重命名扩展名不会改变任何字符,因此严格的消费者可以拒绝其时间在数字上正确但在声明格式上语法错误的文件。
ToolAcre读时宽容,写时严格。可以解析混合分隔符源,但 SRT 输出始终接收一个逗号,而 WebVTT 输出一个点。短于三位数的小数输入会在右侧填充,因此 .5 表示十分之五秒而不是五毫秒。
SRT 今天 — 玩家、平台和编辑者事实上的交换格式
SRT 作为紧凑的交换表示仍然很有用,因为它的基本内容很容易让玩家、平台和编辑者映射:提示顺序、经过的时间和文本。 “事实上”是重要的限定词。目的地可能会施加自己的限制或以不同的方式容忍标记,并且扩展本身并没有说明编码、标题完整性或编辑质量。
使用 SRT 作为交换文件,而不是作为每个功能在另一种格式下幸存下来的证据。 WebVTT 设置、注释、区域和样式块并不都有 SRT 等效项。即使在写入 SRT 时,转换器也会跳过 NOTE、STYLE 和 REGION 块并保留提示设置,因为它们没有定义的效果。
要点:简单、普遍、未指定 — 字幕工具包在转换和清理时如何处理 SRT 的变化
SRT 之所以得以存在,是因为核心表示足够简单,易于检查和实现,但相同的约定主导的历史产生了任何单一严格阅读都无法捕捉到的变化。 Subtitle Toolkit 处理实用的中间立场:接受常见的时间戳和文件形状变化,识别不安全的块,然后编写一种可预测的 SRT 或 WebVTT 表单。
加载原始文件而不是其他转换器已标准化的副本,读取问题列表并在导出之前比较提示计数。跳过的格式错误的提示无法通过干净的序列化来修复;它被省略并报告,这比在消息来源未安全说明的情况下猜测更诚实。