MicroDVD

打开保存纯文本帧

字幕以帧计数,而不是以秒计数:每一行写明它开始和结束的帧,因此只有在制作视频的帧率下,时间才是准确的。该格式得名于 2000 年的 MicroDVD Player,如今仍被 MPlayer、VLC 以及基于 FFmpeg 的播放器读取。

概览

扩展名.sub
媒体类型未注册
规范无。由 MicroDVD Player 的习惯形成,被读取它的播放器沿用下来。
时间精度一帧
文本编码未声明。通常是其语言所用的 Windows 代码页;Subtitld 会自动检测。
样式斜体、粗体、下划线、删除线、颜色、字体和大小,通过花括号中的代码设置
位置{P:x,y},少有播放器读取
说话人无
所在容器无。与视频同名、放在视频旁边的文件。

文件结构

每行一条字幕,各行之间没有空行。

{1}{1}25
{25}{50}Hello!|How are you?
{75}{100}{y:i}Italic|plain
部分 含义
{1}{1}25 帧率。播放器会把第一条只包含数字的“字幕”(位于第 1 帧)读作帧率,而不是文本。
{25}{50} 开始和结束的帧。按每秒 25 帧计算,即从第 1 秒到第 2 秒。
| 换行
{y:i} 一个代码:斜体,作用于本行剩余部分

按帧计算,而不是按秒

文件中不包含时间,只有帧号。同一个文件在不同的帧率下会得到不同的时间:

帧 23.976 fps 时 25 fps 时
{25000} 17:22.7 16:40.0

帧率错误会导致时间漂移。 帧率不对时,字幕开始时还算准确,但随着影片推进会越来越晚或越来越早:第 25,000 帧时相差 42 秒。如果文件没有声明帧率,Subtitld 会使用视频的帧率。

代码

花括号中的代码用于设置文字样式。小写代码只作用于所在的一行,大写代码作用于整条字幕。

代码 效果 在 Subtitld 中
{y:i} {y:b} {y:u} {y:s} 斜体、粗体、下划线、删除线;组合使用时写作 {y:b,u} 保留
{Y:i} 同上,但作用于整条字幕 保留
{c:$0000FF} 颜色,蓝色分量在前:这是红色 保留
行首的 / 斜体,MPL2 的写法 读取为斜体
{f:Arial}、{s:30} 字体、大小 不保留
{P:100,50} 以像素为单位的位置 不保留
{H:Greek}、{DEFAULT} 字符集;整个文件的默认设置 不保留

颜色的顺序是反的。 与 SubStation Alpha 一样,格式为 $BBGGRR:蓝、绿、红。{c:$0000FF} 是红色。

一个扩展名,三种格式

.sub 并不只属于 MicroDVD。Subtitld 会先检查文件内容再决定如何读取。

格式 文件内容 在 Subtitld 中
MicroDVD 文本,以花括号包裹的帧号 按 MicroDVD 打开
SubViewer 2 文本,时间形如 00:00:01.00,00:00:02.00 按 SubViewer 打开
VobSub 字幕图片,旁边有 .idx 文件 不打开:其中没有可编辑的文本

VobSub 的 .sub 以图片形式保存 DVD 上的字幕。OCR 工具(例如 Subtitle Edit)可以把它们转换为文本,之后 Subtitld 就能打开了。

Subtitld 中的 MicroDVD

保留在 .sub 中
  • 每条字幕的文本和换行
  • 整行或整条字幕的斜体、粗体、下划线、删除线和颜色
  • 开始和结束帧,精确到帧,并按顺序排列
无法保存
  • 一行中部分文字的格式
  • 字幕在屏幕上的位置
  • 说话人,以及与原文并列的译文
  • 配音、说话人的脸和颜色

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

打开 MicroDVD 文件

Subtitld 会读取:

  • 文件声明的帧率({1}{1}25,或旧文件使用的 {0}{0}25),否则使用视频的帧率,再否则使用 25;文件声明的帧率会被保留,以便再次保存;
  • 小写代码作用到所在行末尾,大写代码作用到字幕末尾;
  • 空的结束帧,{100}{},表示持续到下一条字幕;
  • 任何编码,包括 Windows-1250 和 Windows-1251;
  • 按顺序排列的字幕,无论文件中的顺序如何。

导出 MicroDVD

Subtitld 的导出对话框,选中了 SUB,编码为 Windows-1250,使用视频的帧率

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

  • 文本原文、译文,或两者都要,译文位于原文之下。
  • 说话人名字不写,或写在文本前(Thom: ……)。
  • 格式保留,或去除。
  • 时间偏移所有字幕整体提前或推迟相同的时长。
  • 编码UTF-8(带或不带字节顺序标记)、UTF-16,或 Windows 代码页:西欧、中欧、西里尔文或韩文。
  • 换行符Linux 和 macOS 格式,或 Windows 格式。
  • 帧率视频的帧率,或其他帧率;所选帧率会写在文件的第一行。

整条字幕的样式写在开头的大写代码中,整行的样式写在行首的小写代码中。播放器就是在这些位置查找代码的(FFmpeg 会把行中间的代码显示为普通文字),因此一行中部分文字的格式会被写成纯文本。

小知识

2000

Tiamat Software 于 2000 年 3 月发布了 MicroDVD Player,次年便停止了开发。它的字幕格式却比它存活得更久。

[BEGIN] <p>
MicroDVD Player 要求文件开头有 [BEGIN],结尾有 [END]。其他播放器会读取两者之间的各行。

42 秒

同一帧在 23.976 和 25 帧每秒下的时间差:到第 25,000 帧时约为十七分钟。

相关格式

有 .sub 需要修正吗?

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

下载 Subtitld