EBU 字幕数据交换格式

打开保存二进制广播

自 1991 年起,欧洲广播机构一直用它交换字幕:这是由固定大小的数据块组成的二进制文件,最初为软盘设计。文件开头是关于节目的文件头,之后每条字幕对应一个数据块,文本使用 teletext 的字符集。

概览

扩展名.stl
媒体类型未注册
规范EBU Tech 3264(1991 年)。其 XML 后继为 EBU-TT(Tech 3350)。
时间精度一帧,帧率为每秒 25 或 30(29.97)帧
文本编码拉丁语系使用 ISO 6937,重音符号位于字母之前;西里尔文、阿拉伯文、希腊文和希伯来文使用 ISO 8859
样式Teletext 的颜色和倍高;开放字幕使用斜体和下划线
位置行(teletext 共 23 行),以及左对齐、居中或右对齐
说话人无
所在容器无。随节目一同交付的文件。

文件结构

这不是文本,而是字节:先是 1,024 字节的文件头,之后每条字幕对应一个 128 字节的数据块。

GSI · 1,024 bytes
  STL25.01 · teletext
  Latin · English
  Tears of Steel …
TTI · 128 bytes
  10:00:01:00
  10:00:02:12
  row 20 · centred
  You're a jerk,␊␊Celia.
TTI · 128 bytes
  …
  1. 1 · GSI

    通用字幕信息:帧率、teletext 还是开放字幕、字符表、语言、标题、节目的开始时间,以及后面有多少个数据块。

  2. 2 · 时间

    文本和时间信息,每条字幕一个数据块:入点和出点的时间码。

  3. 3 · 文本

    字幕开始所在的行、对齐方式,以及 112 字节的文本,其中包含为其设置样式的控制码。

文件头

字段 内容
DFC 帧率:STL25.01,或 29.97 视频使用的 STL30.01
DSC teletext 为 1 或 2,开放字幕为 0(烧录到画面中,或由播放器渲染)
CCT 字符表:00 拉丁语,01 西里尔文,02 阿拉伯文,03 希腊文,04 希伯来文
LC 语言,使用 EBU 自己的代码:09 英语,0F 法语,21 葡萄牙语
TCP 节目开始的时间码
OPT 节目标题

时间码

节目通常从十点开始。 广播机构从 10:00:00:00 开始为节目的帧编号,文件头中会写明这一点。Subtitld 会从这个起点计算字幕的时间,使它们与从 0:00 开始的视频对齐。

文本字段

字符和控制码共用这 112 字节。

字节 作用
0x00–0x07 Teletext 颜色:黑、红、绿、黄、蓝、品红、青、白
0x0D 倍高
0x0B 开始加框:teletext 字幕只显示加框的内容
0x8A CR/LF,即换行
0x80、0x81 开启和关闭斜体,用于开放字幕
0x82、0x83 开启和关闭下划线,用于开放字幕
0xC1–0xCF 重音符号,位于它所附着的字母之前
0x8F 未使用的空间,位于文本之后

每个代码占一个字符位。 在 teletext 中,控制码显示为空格,因此两个词之间的颜色变化就表现为它们之间的那个空格。Subtitld 会用代码代替空格来写入。

Teletext 还是开放字幕?

Teletext 开放字幕
文件头 DSC 1 或 2 0
显示方式 观众的电视以 teletext 显示 烧录到画面中,或由播放器绘制
行数 23 行,每行 40 个字符位 文件头中指定的行数
斜体、下划线 — 有
倍高 有 —
加框 0x0B,框住显示的内容 0x84 和 0x85,文字后方加一个框

Subtitld 中的 STL

保留在 .stl 中
  • 每条字幕的文本和换行
  • 颜色;开放字幕中的斜体和下划线
  • 位置:顶部、中部或底部;左、中或右
  • 语言
  • 开始和结束时间,精确到帧
无法保存
  • Teletext 中的斜体
  • 语言的地区(EBU 的代码只标明语言)
  • 说话人,以及与原文并列的译文
  • 配音、说话人的脸和颜色

如需保留这些内容,请保存为 .usfx 项目。

打开 STL 文件

Subtitld 会读取:

  • 文件头中指定的帧率,即 STL25.01 或 STL30.01,以及较新文件中的 23.976、24 和 50;
  • 当文件头表明启用了时间起点时,从节目起点计算的时间;
  • ISO 6937 编码的拉丁文本,或文件头所指定的西里尔文、阿拉伯文、希腊文或希伯来文字符表;
  • 较长字幕的扩展块,合并为一条字幕;注释和用户数据则忽略;
  • 颜色、斜体和下划线,以及行和对齐方式,作为字幕的位置;
  • 文件头中的语言,作为项目的语言。

文件的帧率、显示方式和节目起点都会被保留,以便再次保存时保持原样。如果文件不是 EBU STL(例如三维模型的 .stl),Subtitld 会说明原因。

导出 STL

Subtitld 的导出对话框,选中了 STL,teletext 格式,帧率 25,节目从 10:00:00:00 开始

在 导出 中选择 字幕 和 STL,会提供以下选项:

  • 文本原文、译文,或两者都要,译文位于原文之下。
  • 说话人名字不写,或写在文本前(Thom: ……)。
  • 格式保留,或去除。
  • 时间偏移所有字幕整体提前或推迟相同的时长。
  • 帧率25,或 29.97 视频使用的 30:默认为视频的帧率,也可以自行选择。
  • 显示方式Teletext,每行倍高并加框;或开放字幕,带斜体和下划线。
  • 节目起始于00:00:00:00,或广播机构常用的 10:00:00:00。

字符表由文本需要决定:除非是西里尔文、希腊文、阿拉伯文或希伯来文,否则使用拉丁文。标题为视频的名称。teletext 的一行在去掉控制码后约可容纳 36 个字符;Subtitld 不会为更长的行自动换行。

小知识

1991

EBU 于 1991 年发布了 Tech 3264,用于通过软盘交换字幕。文件头中仍保留着文件跨越多少张软盘、当前是哪一张的字段。

112

每个数据块中的文本字节数。较长的字幕会延续到扩展块中,按编号排列,最后一块的标记为 255。

EBU-TT

STL 的 XML 后继 Tech 3350 于 2012 年发布,Tech 3360 则说明如何把 STL 映射到它上面。其分发配置文件 EBU-TT-D 属于一种 TTML。

相关格式

有 .stl 需要修正吗?

在 Subtitld 中打开它,连同视频一起,在波形上重新打轴。

下载 Subtitld