DVD-Video 字幕文件格式
字幕文件中的每条字幕必需包括一个开始时间码,一个结束时间码和一个要显示的字符串。另外,你也可以在字符串前加一些字幕文字格式及在屏幕上显示位置的命令。
字幕文件基本格式
以下是一个简单的字幕文件例子,没有任何文字格式或屏幕位置的命令。每条字幕一行,以回车符作为结束。字幕字符串格式如下:
[标号#][tab][开始时间码][tab][结束时间码][tab][字幕文字][cr]
解释如下:
• [标号#]字幕的序号。不必是唯一的或按顺序排列的,所以,如果你在字幕文件中间插入一条新的字幕,没有必要修改其它字幕的标号。
• [tab] 计算机键盘上的“tab”键,用来用固定数量的空格分割字符。
• [开始时间码] 字幕字符串显现的时间码
• [结束时间码] 字幕字符串停止显示的时间码
• [text]字幕字符串
• [cr] 计算机键盘上的“Enter”键,回车符
例如:
1 00:02:17:12 00:02:23:21 这是一个字幕字符串...
2 00:02:27:02 00:02:35:18 ...这是更多的字幕字符串文字.
3 00:03:12:14 00:03:22:10 等等,还有更多
时间码使用hh:mm:ss:ff格式。hh 时;mm 分;ss 秒;ff 桢。如果你以源视频带的时间码做参考创建字幕文件,你可以加入一个Tape Offset命令用来计算视频带时间码与电影时间码的差值(都是以00:00:00:00开始)。
字幕时间码不能重叠。如果你的字幕中包含一条字幕,他的开始在上一条字幕结束之前,一些软件不能正确的导入这个字幕文件。
处理多行的字幕的方式是使用“|“字符代替行尾的回车符,或在下一行的开始初使用回车符。
例如:
4 00:12:05:01 00:12:05:19 第一行字幕|第二行字幕
和以下效果一致:
4 00:12:05:01 00:12:05:19 第一行字幕
第二行字幕
如果字幕中包含字符“|”,在这个字符前使用转意符“/”,例如 “/|”.
字体命令
使用字体命令,你能够为整个字幕文件或单独一条字幕设置字型及字体格式。如果字幕文件中不包括字体命令,字幕处理软件会使用默认的字体处理所输入字幕。
字体命令必须被放置到所修饰的字幕行前。支持以下字体命令:
• $FontName = [name of a font face] sets the typeface.
• $FontName = [字型名称] 设置字型.
• $FontSize = [number] sets the text size in points.
• $FontSize = [字号] 以点阵方式设置字体大小.
• $Bold = TRUE/FALSE turns bold on or off.
• $Bold = TRUE/FALSE 是否是粗体.
• $Italic = TRUE/FALSE turns italic on or off.
• $Italic = TRUE/FALSE 是否为斜体.
• $Underlined = TRUE/FALSE turns underlining on or off.
• $Underlined = TRUE/FALSE 是否带下画线.
例如:
$FontName = Arial
$FontSize = 16
$Bold = FALSE
$Italic = FALSE
$Underlined = FALSE
1 00:02:17:12 00:02:23:21 This text is 16-pt Arial
$Bold = TRUE
2 00:02:27:02 00:02:35:18 And this is 16-pt Arial, Bold
$Bold = FALSE
$FontSize = 20
3 00:03:12:14 00:03:22:10 Back to plain Arial, but 20-pt
位置命令
位置命令控制字幕块在屏幕上的位置。你能够为整个字幕文件或单独一条字幕设置位置信息。如果字幕文件中没有位置信息,字幕处理软件会使用默认的位置处理所输入字幕。
位置命令必须被放置到所修饰的字幕行前。支持以下位置命令:
• $HorzAlign = LEFT/CENTER/RIGHT/FALSE 设置字幕块的水平位置。LEFT左对齐;CENTER居中;RIGHT右对齐;FALSE将使用象素为单位的位置命令而不是点阵为单位的位置命令。
• $VertAlign = TOP/CENTER/BOTTOM/FALSE设置字幕块的垂直位置。TOP上对齐;CENTER居中;RIGHT下对齐;FALSE将使用象素为单位的位置命令而不是点阵为单位的位置命令。
• $LeftPosition = [数值] 设置字幕左边与屏幕左边的距离。以象素为单位.
• $RightPosition = [数值] 设置字幕右边与屏幕右边的距离。以象素为单位.
• $TopPosition = [数值] 设置字幕上边与屏幕上边的距离。以象素为单位.
• $BottomPosition = [数值] 设置字幕下边与屏幕下边的距离。以象素为单位.
例如:
$HorzAlign = CENTER
$VertAlign = BOTTOM
1 00:02:17:12 00:02:23:21 Text block centered at bottom
$HorzAlign = LEFT
$VertAlign = TOP
2 00:02:27:02 00:02:35:18 Text block at top left
以下是一个显示命令:
• $TapeOffset = TRUE [
可选的时间码] / FALSE
这个命令被放置在字幕文件的开始处。用来控制视频流时间码与字幕文件中的时间码的对应关系。如果字幕文件中不包括 $TapeOffset命令或包括这个命令但是设置的值为FALSE.电影时间码相对与字幕时间码的偏移为
00:00:00:00。否则字幕的显示时间要加上这个偏移值。