前段时间写了个网页小工具:字幕工具箱 - 免费的在线字幕工具集合。在这个过程中,我发现字幕文件格式有很多种,而且每种格式都有自己的特点。这篇文章就来全面概述一下字幕文件格式。
我们看视频时,除了面画和声音,字幕也是一个重要的元素,可以大大提高视频内容的可访问性。字幕主要有两种格式:
基于文本的格式:这些格式(如 SRT 或 SSA)将字幕存储为纯文本,您可以使用常规文本编辑器轻松阅读甚至编辑。
二进制格式:二进制格式,例如 IDX/SUB 和 STL,我们可能会在 DVD 和蓝光光盘中找到这些内容。
因为我写的字幕工具箱 - 免费的在线字幕工具集合,全是基于文本字幕的,所以在这篇文章中,只介绍基于文本的字幕格式,这也是我们最为常用的字幕格式。
SubRipper (.srt)
SubRipper 格式(通常称为 SRT),是最广泛使用的字幕格式。其结构也非常简单,主包含三个部分:
-
序列号:将其视为一个标签,表示哪个字幕是第一个、第二个、第三个等等。
-
时间码:以
-->
分隔的两个时间戳(格式为:HH:MM:SS,sss
),表示字幕何时开始和结束。 -
内容文本:这是实际的字幕,即您在屏幕上看到的文字。它可以是从口头对话到字幕的任何内容。
以下为电影《让子弹飞》SRT字幕节选:
2404
02:02:20,820 --> 02:02:23,971
你和钱对我都不重要
2405
02:02:25,740 --> 02:02:26,889
那谁重要?
2406
02:02:30,900 --> 02:02:34,017
没有你,对我很重要
在此 SRT 示例中,每个片段都有序列号、时间码和字幕内容。当您播放视频时,播放器会读取 SRT 文件并在正确的时间显示每个片段。
SRT 字幕样式
SRT 字幕格式是纯文本格式,但也可以包含一些基本的文本格式,具体取决于处理应用程序。格式源自 HTML 标签,用于粗体、斜体、下划线和颜色:
- 字幕加粗 –
<b>…</b>
- 斜体 –
<i>…</i>
- 下划线 –
<u>…</u>
- 字幕颜色 –
<font color="color name or #code">…</font>
标签可以嵌套;某些实现只支持整行格式。
SRT 编码方式
SRT 默认编码方式是 Windows-1252. 但是,也提供了许多 Windows 代码页和 Unicode 编码的输出选项,例如 UTF-8 和 UTF-16,带或不带字节顺序标记(BOM)。因此,.srt 文件没有官方的字符编码标准,这意味着任何 SubRip 文件解析器都必须尝试使用字符集检测。Unicode BOM 通常用于帮助检测。
YouTube 仅支持 UTF-8。FFmpeg 中字幕文件的默认编码是 UTF-8。
SRT 字幕的优点
SRT 字幕简单、通用且易于编辑,是字幕世界的瑞士军刀。
兼容性强:大多数软件视频播放器都支持 SubRip 文件格式。许多字幕创软件以及媒体播放器都直接支持SubRip格式。2008年8月,YouTube在“隐藏式字幕”选项下为其视频播放器添加了字幕支持——内容制作者可以上传SubRip格式的字幕。自此,SubRip格式成为了字幕制作的标准。
易编辑:SRT 文件是纯文本文件,可以使用任何文本编辑器打开和编辑。结构简单,易于理解。