SubRip
最简单的字幕格式,也是几乎所有播放器都支持的格式:编号的文字块,每块都有开始和结束时间。没有文件头,几乎没有样式,也没有官方的行位置设定。正因如此,它无处不在。
概览
| 扩展名 | .srt |
|---|---|
| 媒体类型 | application/x-subrip(未注册) |
| 规范 | 无。由播放器实际接受的内容决定。 |
| 时间精度 | 毫秒 |
| 文本编码 | 文件中不声明编码。UTF-8 最安全;字节序标记(BOM)对一些老播放器和电视有帮助。Subtitld 打开时会检测较旧的编码。 |
| 样式 | 斜体、粗体、下划线、删除线和颜色,通过非官方标签实现 |
| 位置 | 格式本身不支持。借自 SubStation Alpha 的 {\an8} 及其同类写法被广泛支持。 |
| 在容器中 | Matroska 中为 S_TEXT/UTF8;转为 MP4 时为 mov_text |
字幕的结构
字幕文件是一列文字块。每个块包含四个部分,且顺序固定。
3 00:00:27,000 --> 00:00:30,500 ...you have your robotics, and I just want to be awesome in space.
从 1 开始的数字。必需,不过大多数播放器会忽略它。
- 2 · 时间
开始时间、箭头
-->、结束时间。箭头两边要有空格。 - 3 · 文本
一行或多行。通常建议不超过两行,便于阅读。
- 4 · 空行
结束当前块。没有它,很多播放器会把下一个编号当作文本。
时间码
用逗号,不用句点。 00:00:27.000 是 WebVTT 的写法。有些播放器会容忍句点,严格的则会拒绝打开文件。这是 SRT "打不开" 最常见的原因。Subtitld 两种写法都能读取,写入时总是使用逗号。
格式标签
这些标签都不属于任何标准,但多年来播放器之间已形成共识。请适度使用;并非所有平台都会显示它们。
| 标签 | 效果 | 支持情况 |
|---|---|---|
<i>…</i> |
斜体,用于画外音 | 几乎所有播放器 |
<b>…</b> |
粗体 | 大多数桌面播放器 |
<u>…</u> |
下划线 | 大多数桌面播放器 |
<s>…</s> |
删除线 | 部分桌面播放器,包括 VLC 和 mpv |
<font color="#ffd700"> |
文字颜色,可用十六进制代码或颜色名 | 桌面播放器;网页上常被忽略 |
<font face="…" size="…"> |
字体和字号 | 少数桌面播放器 |
{\an8} |
移到顶部,借自 SubStation Alpha | VLC、mpv 及其他 |
字幕位置
{\an1} 到 {\an9} 的排列方式与数字小键盘相同。代码放在字幕文字的最开头。
| 左 | 中 | 右 | |
|---|---|---|---|
| 上 | {\an7} |
{\an8} |
{\an9} |
| 中 | {\an4} |
{\an5} |
{\an6} |
| 下 | {\an1} |
{\an2},默认值 |
{\an3} |
打开损坏的 SRT
SRT 文件来源五花八门,很多都不完全遵守约定。Subtitld 根据时间行而不是空行来找到每条字幕,因此可以打开以下这些文件:
- 任意编码:带或不带字节序标记的 UTF-8、UTF-16,或 Windows-1252 等旧编码;
- 用句点代替逗号、小时数只有一位、小数位数不是三位,或使用短箭头(
->); - 缺少编号,空行缺失或多余,或字幕块中间有空行;
- 结束时间后面某些工具写入的坐标;
- 顺序错乱的字幕,它会重新排好。
Subtitld 中的 SRT
- 每条字幕的文字和换行
- 斜体、粗体、下划线、删除线、颜色和位置
- 开始和结束时间,精确到毫秒
- 字幕的顺序
- 说话人、他们的脸和颜色(名字可以放在文字前面)
- 与原文并列的译文(可以替代原文,或放在原文下方)
- 配音和元数据
保存 .usfx 项目即可保留这些内容。
导出 SRT
依次点击 导出,再选择 字幕 和 SRT,可以设置以下选项:
- 文本原文、译文,或两者都要,译文放在下方。
- 说话人名字不写出,或放在文字前(Thom:…)。
- 格式保留,或删除;适用于会把标签显示为文字的平台。
- 偏移时间把所有字幕整体提前或推后相同的时长。
- 编码UTF-8;带字节序标记的 UTF-8,适用于老播放器和电视;UTF-16;或 Windows-1252。
- 换行符Linux 和 macOS 用的 LF,或 Windows 用的 CRLF。
无论选择什么选项,文件都是标准的 SubRip:字幕按开始时间排序,从 1 开始编号,毫秒前使用逗号。空字幕会被省略;字幕内部的空行也会被省略,因为大多数播放器会把它当作字幕的结束。
SRT 还是 WebVTT?
| SubRip .srt | WebVTT .vtt | |
|---|---|---|
| 第一行 | 第一个编号 | WEBVTT |
| 毫秒 | 逗号之后 | 句点之后 |
| 编号 | 必需 | 可选的 cue 名称 |
| 位置 | {\an8} 及其同类,非官方 |
cue 设置:line、position、align |
| 样式 | 非官方标签 | 标签,以及通过 ::cue 使用的 CSS |
| 说话人 | 只能作为文字的一部分 | 语音标签:<v Thom> |
| 在网页浏览器中 | 需要转换 | 原生支持,配合 <track> |
| 适合用于 | 播放器、编辑器、上传 | 网页视频 |
趣闻
这种格式以 SubRip 命名。SubRip 是一个 Windows 程序,它通过 OCR 从 DVD 上读取字幕,并把它们写成文本。
WebVTT 最初叫 WebSRT,是为网络改编的 SubRip,之后才加入文件头、cue 设置和 CSS。
从来没有任何组织发布过它的规范。逗号、箭头和空行,是一个持续了四分之一个世纪的约定。
相关格式
在 Subtitld 中打开它,连同视频一起,在波形上重新打轴。