MacCaption 附属数据包传输文件
视频字幕按帧存放的方式:每一帧的字幕数据包以十六进制形式,写在其时间码之后。SCC 只保存 CEA-608,而 MCC 保存完整的数据包,即 CEA-608 和 CEA-708 两者。该格式得名于 MacCaption,即制作它的字幕软件。
概览
| 扩展名 | .mcc |
|---|---|
| 媒体类型 | 未注册 |
| 规范 | 文件本身由 MacCaption 定义,并在其文件头中说明。数据包:SMPTE ST 291 和 ST 334。字幕:CTA-608 和 CTA-708。 |
| 时间精度 | 一帧,帧率为每秒 23.976 至 60 帧 |
| 文本编码 | 十六进制数字,对重复出现的字节串使用字母表示。字符本身采用 CEA-608 和 CEA-708 的编码。 |
| 样式 | CEA-608 的斜体、下划线和七种颜色;CEA-708 自有的字体、大小和颜色 |
| 位置 | CEA-608 的网格:15 行,每行 32 列;CEA-708 的窗口 |
| 说话人 | 格式中没有。字幕制作人员在说话人切换处写入 >>。 |
| 所在容器 | 数据包本身,而非文件:SDI 视频的附属数据,以及 MXF 的附属数据轨道 |
文件结构
文件头之后,每个携带字幕的帧对应一行:时间码、一个制表符,以及该帧的数据包。
File Format=MacCaption_MCC V1.0 // Computer Prompting and … Creation Program=Subtitld Time Code Rate=30DF 00:00:22;07 T…FC9420…AB 00:00:22;08 T…FC9420…AB 00:00:22;09 T…FC94AE…AB
- 1 · 文件头
版本号 1.0 或 2.0,之后是 MacCaption 对该格式的说明,每个文件中都完整复制。
- 2 · 文件信息
写入文件的程序和时间,以及时间码计数所用的帧率。
- 3 · 时间码
数据包随之输出的那一帧。
- 4 · 数据包
该帧的字幕数据包,以十六进制表示。其中包含 SCC 文件对该帧会保存的两个 CEA-608 字节:
9420、9420、94ae……
逐字节解析数据包
上面第一行的 T49S494F43ZZ72F4FC9420ROO74ZZ0BAB 完整解析如下:
| 文件中的内容 | 含义 |
|---|---|
T |
61 01 一个 CEA-708 字幕的附属数据包 |
49 |
计数 之后有 73 个字节 |
S |
96 69 字幕分发数据包开始 |
49 |
其长度,73 字节 |
4F |
其帧率:4,即 29.97 |
43 |
标志 有字幕数据;字幕服务已开启 |
ZZ |
其编号,每个数据包递增 |
72 F4 |
字幕数据 之后有 20 组、每组三个字节的数据 |
FC9420 |
第一场 一对 CEA-608 字节:9420,即 SCC 的 RCL |
R |
第二场 FD 80 80:无内容 |
OO |
CEA-708 18 个 FA 00 00:本帧无内容 |
74 ZZ |
页脚 再次写入数据包的编号 |
0B |
字幕数据包的校验和 |
AB |
附属数据包的校验和 |
无论帧率如何,每秒都是 600 组。 每帧在 24 fps 时携带 25 组,在 25 fps 时携带 24 组,在 30 fps 时携带 20 组;在 23.976 和 29.97 时也同样数量。每组包含两个字节的字幕数据,即每秒 9,600 位。CEA-608 只使用其中一部分,其余的归 CEA-708 所有。
用字母代替字节
每个数据包中都会重复出现的字节串,用一个字母表示。
| 字母 | 字节 |
|---|---|
G 至 O |
FA 00 00,重复一到九次:CEA-708 中没有内容需要发送 |
P Q R |
FB 80 80、FC 80 80、FD 80 80 |
S |
96 69,字幕分发数据包的开头 |
T |
61 01,CEA-708 附属数据包的开头 |
U |
E1 00 00 00 |
Z |
00 |
时间码
文件头中的 Time Code Rate 表示帧的计数方式:24、25、30、30DF(丢帧,帧号前使用 ;)、50 或 60,以及 2.0 版本中的 60DF。23.976 的视频按 24 计数,29.97 的视频按 30 或 30DF 计数:每个数据包中的帧率说明了具体是哪一种。
MCC 还是 SCC?
| SCC | MCC | |
|---|---|---|
| 保存内容 | CEA-608 的字节 | 每一帧的字幕数据包:CEA-608 和 CEA-708 |
| 帧率 | 29.97 | 23.976 至 60 |
| 每行内容 | 从某一帧开始的词语,每帧一个词 | 一帧的数据包 |
Subtitld 中的 MCC
- 每条字幕的文本,按每行 32 列排列
- 斜体、下划线和七种颜色
- 位置:顶部、中部或底部;左、中或右
- 说话人,以
>>标记每次切换 - 开始和结束时间,精确到帧
- 粗体、字体和大小
- CEA-608 字符集以外的字符,会变为对应的普通字母或 “?”
- CEA-708 字幕:Subtitld 读写的是 CEA-608 字幕
- 与原文并列的译文
- 配音、说话人的名字和脸
如需保留属于 Subtitld 的内容,请保存为 .usfx 项目。
打开 MCC 文件
Subtitld 会读取:
- 文件头和数据包给出的帧率,以及是否为丢帧;
- 字母,以及每个数据包的字幕数据;
- 第一场中的 CEA-608 字幕;若第一场没有,则读取第二场的字幕,以及 CEA-608 自己的附属数据包中的字幕;
- 2.0 版本时间码之后的场和行。
解码方式与 SCC 相同:弹出式、滚动式和绘制式字幕;斜体、下划线和颜色;行和列则作为字幕的位置。文件的帧率会被保留,以便再次保存时保持原样。如果文件只包含 CEA-708 字幕,Subtitld 会说明原因:目前还不能读取它们。
导出 MCC
在 导出 中选择 字幕 和 MCC,会提供以下选项:
- 文本原文或译文。
- 说话人名字不写,写在文本前(Thom: ……),或在说话人切换处写成
>>。 - 格式保留,或去除。
- 时间偏移所有字幕整体提前或推迟相同的时长。
- 帧率23.976、24、25、29.97(丢帧或不丢帧)或 30:默认为视频的帧率,也可以自行选择。
Subtitld 写出的是 1.0 版本,并完整保留 MacCaption 的文件头。字幕与它为 SCC 写出的弹出式字幕相同,写在第一通道中:每个携带字节对的帧输出一个数据包,第二场以及 CEA-708 的部分则留空。
小知识
每个 MCC 文件开头都有若干行注释:MacCaption 对该格式的说明及其使用条款。只要完整保留这些内容,就可以编写该格式的文件。
Computer Prompting & Captioning Co. 公司成立。其字幕软件 MacCaption(用于 Mac)和 CaptionMaker(用于 Windows)于 2013 年随公司一起归入 Telestream。
每个字幕分发数据包都以这两个字节开头,即 MCC 中的 S。该数据包最初在 CEA-708-B 中定义,如今是 SMPTE ST 334-2。
相关格式
在 Subtitld 中打开它,连同视频一起,在波形上重新打轴。