内容:
一. 概述
二. 文件各个部分解析
三. 各种类型的行
里约大冒险插曲四. [Script Info]部分的标题行
五. [v4+ Styles]部分的风格行Style
六. [Events]事件部分的对话行Dialogue
七. [Events]事件部分的注解行Comment
八. [Events]事件部分的图片行Picture
九. [Events]事件部分的声音行Sound
zanba十. [Events]事件部分的影片行Movie
十一. [Events]事件部分的命令行Command
附A. 风格覆盖代码(Tags, Codes)
附B. 内嵌的字体/图片编码
注:
1) 此文档是对原SSA文件规格英文文档进行翻译和补充而成, 原文件可从以下链接获得:
uk/projects/asa/ass-specs.doc
另外参考了以下资料:
en.wikipedia/wiki/SubStation_Alpha
2) 表述编写格式时, 用到的符号说明如下:
<..> 参数
[..] 可选项
3) 除附A以外, 用红色字体标明ASS相对于SSA格式的新增功能或者改动
4) 用蓝色, 加粗, 下划线等符号表明需要注意的地方.
一. 概述
SSA全称SubStation Alpha, 是由CS Low(又称Kotus)创建的一种字幕格式, 用以实现比传统字幕诸如srt等格式更为复杂的功能. SSA目前的版本为v4.00. SSA同时也是一款软件的名称, 专用于创建和编辑SSA格式的字幕.
大思英语怎么样ASS是一种比SSA更为高级的字幕格式, 全称Advanced SubStation Alpha, 实质是SSA v4.00+ 版本. 它拥有比SSA更多的功能.
1. SSA v4.00与之前的SSA版本格式不同. v4可以阅读和加载以前版本的格式, 但之前版本不支持v4以上的编写格式. 换句话说, SSA从v4版本开始可以阅读它认识的命令而忽略不认识的命令, 从而可以向下兼容, 也可以向上兼容.
2. 文件为普通的DOS文本格式. 也就是说它可以用记事本打开编辑, 同时需要注意编写出错时有可能导致无法预料的结果.
3. 文件编写时所划分的各部分, 从形式上来说类似于ini文件, 但它并非真正的ini文件
4. 各部分中的绝大多行都以一说明性的文字加上冒号来开头, 指明该行包含哪一些信息.
5. 每一行中的信息都以逗号分隔. 因此风格名和人物角色名中要求不能出现逗号.
6. 事件部分([Events])里的各行可以不分先后. 也就是说人物对白行可以不按时间顺序排列
7. 不正确的行会被忽略. 同时会给出警告指出被忽略的行数
8. 一行里包含了完整的信息, 必须在一行内写完, 不能分成多行
9. 当文件中引用了一个未知的风格名(style)时, 加载时会用默认的风格来替代(Default)
10. 当一个风格(Style)中引用了系统中没有安装的字体, 则会用Arial字体来代替.
二. 文件各部分解析
[Script Info]
这一部分包含了文件内容的标题和总体信息. [Script Info]这一行必须是v4版本文件的第一行
[v4 Styles]
字幕正文使用的风格都在这一部分做出相关定义. 注: ASS使用的是[v4+ Styles]
[Events]
这部分包含所有的事件, 有字幕, 评论, 图片, 声音, 影片和命令. 基本上屏幕中出现的所有内容都集中在这一部分.
[Fonts]
如果想把字体内嵌入字幕文件, 那么字体文件须采用数字编码后放在这一部分. 只有truetyle字体才能内嵌入SSA/ASS文件
每一个内嵌字体文件以一行开头, 格式如下:
fontname: <;文件名>
开头的"fontname"必须全部用小写, 如果大写会让ASS文件视其为文件编码的一部分.
<;文件名>是SSA文件保存字体时使用的文件名, 命名规则如下:
truetype字体原来的字体名称
加一条下划线
如果是粗体则加一个"B"
如果是斜休则加一个"I"
加一个数字表明字体编码(字符集)
最后加上".ttf"
例如:
fontname: f
在这一行之后是一些可打印的字符组成的行, 代表组成这个字体的二进制字符, 除了最后一行可能短些, 其余每行有80个字符.
从二进制转换到字符用的是UUE-encoding的编码方式, 编码的详细信息参见附B
[Graphics]
如果选择内嵌图片, 那这一部分就包含了所有用到的数字编码格式的图片文件. 开头一行的格式如下:
filename: <;文件名>
开头的"filename"必须为小写, 如果大写会被认为是文件编码的一部分.
<;文件名>是SSA文件保存图片时使用的文件名, 它与[Events]事件部分中提及的图片名称一致.
SSA会把文件中找到的任何文件保存到SSA的程序目录中的"Pictures"子目录中. 例如: c:\program files\Sub Station Alpha v4.00\Pictures. SSA会先从文件本身中寻找这些编码好的文件, 但当没有找到时会去"Pictures"这个子目录里去找.
注: 现在的SSA文件已经很少包含"[Pictures]" 或者 "[Fonts]" 这两个部分. 因为这些功能只被Sub Station Alpha这一个程序所支持. 而其它的filter (Vobsub/Vsfilter/Avery Lee Subtitler filter) 都不支持.
享受的乐趣三. 各种类型的行
在这一节里简要地说明在每个部分中出现的所有行的类型和大致功能, 各自具体说明参见后面的章节.
; 只在编写中请说明作用的行, 加载字幕时不可见. Title: 标题, 是对字幕的描述
Original Script: 最初创建字幕的人
Original Translation: (可选) 最初翻译对话的人
Original Editing: (可选) 最初的编辑者, 一般是所有参与翻译和校对等工作的人
Original Timing: (可选) 最初的时间轴人员
Synch Point: (可选) 指出从哪一个时间点开始进行字幕加载播放Script Updated By: (可选) 对原字幕对话进行编辑更新的人
尺子的英语
Update Details: 进行了哪些更新等具体信息
ScriptType: 对SSA/ASS文件的版本做说明, 例如"v4.00". ASS的版本为"v4.00+"
lovely什么意思>谢谢Collisions: 当两条字幕重叠时, 如何进行相对移动
risk是什么意思PlayResY: 文件所使用的视频高度参考标准
PlayResX: 文件所使用的视频宽度参考标准
PlayDepth: 加载字幕时所使用的颜色深度
Timer: 对字幕加载的速度调整, 数值为百分数. 例如"100.0000"代表100%.
ScaledBorderAndShadow: 边框宽度与阴影深度是否随着视频分辨率同等比例缩放.
Style: 定义每条字幕所使用的风格
托福口语一对一Dialogue: 指明为对话事件, 即屏幕上出现的字幕
Comment: 指明此行是评论/解释事件, 它与Dialogue, Picture, Sound, Movie或者Command事件包含相同的信息, 以此来进行解释说明, 但加载字幕时不会出现在屏幕
Picture: 指明为图片事件, 即显示.bmp, .jpg, .gif, .ico 或者 .wmf 格式的图片(注意不支持png, 且filter不支持加载图片)
Sound: 指明为声音事件, 即播放.wav格式的声音(filter不支持) Movie: 指明为电影事件, 即加载avi视频(filter不支持) Command: 指明为命令事件, 即可在后台打开某个程序
四. [Script Info]部分的标题行
ieeetransaction; 分号, 后面可以跟任何内容. 这一行是说明性文字, 加载字幕时不显示
注意此类型行必须要把分号放最前. 老版本不是用分号而是用!:
Title: 标题, 如果没有提供, 则自动使用<untitled>
Original Script: 剧本的最初作者, 若没有提供则自动使用<unknown> Original Translation: (可选)原剧本的翻译者, 若没有提供则该行不显示Original Editing: (可选)原剧本的编者和校对, 若没有提供则该行不显示
Original Timing: (可选)原剧本的时间轴人员, 若没有提供则该行不显示
Synch Point: (可选)从哪个时间点开始加载字幕, 若没有提供则该行不显示
Script Updated By: (可选)对原剧本的修改/更新人员, 若没有提供则该行不显示
Update Details: 更新的具体信息, 若没有提供则该行不显示
Script Type: SSA的版本信息, ASS的版本为"v4.00+"
Collisions: 当字幕时间重叠时, 前后字幕的堆叠方式.
值为"Normal"时, 后一条字幕出现在前一条字幕的上方.
如果值为"Rever"时, 前一条字幕往上移动给后一条字幕让位.
PlayResY: 文件所使用的视频高度参考标准, 如果使用
Directdraw回放SSA v4会自动选择最相近的启用的设置
PlayResX: 文件所使用的视频宽度参考标准, 如果使用Directdraw 回放SSA v4会自动选择最相近的启用的设置.
如果只提供了PlayResX, PlayResY其中一种, 那另一种会按实际视频的像素值为准.
提供的分辨率数值影响以下参数:
1) 所有给出的坐标(到边缘的距离, \pos, \move, 矢量绘图等)都以此分辨率作为参照.
2) 所有的文字字号均按照此分辨率等比例放大缩小
3) 当ScaledBorderAndShadow被启用时, 所有边框宽度和阴影深度都按照此分辨率与实际分辨率的比例等比例缩放
4) 这个分辨率不影响最终显示文字的宽高比, 但影响矢量绘画图形的宽高比.
PlayDepth:加载字幕时使用的色深(颜色的数目), 如果使用Directdraw回放SSA v4会自动选择最相近的启用的设置
Timer: 字幕加载的速度调整, 数值为百分数. 例如"100.0000"代表100%. 其数值有4位小数点.
它相当于对ASS字幕的时间速度进行乘法运算.
当速度大于100%时, 总时间会缩短, 而相应的字幕会越来越靠前.
当速度小于100%时, 总时间会延长, 而相应的字幕会越来越靠后.
WrapStyle: 定义默认的换行方式,
0: 智能换行, 行分得较平均, 上面的行较长
1: 一行结束后从行尾的词分行
2: 不换行. 此模式下只有\n, \N才换行
3: 与模式0相同, 但下面的行分得比较长ScaledBorderAndShadow: 指定边框宽度与阴影深度是否随着视频分辨率等比例缩放. 可为Yes, No. 默认为No.
当取值为No时, 边框宽度与阴影深度完全按照指定的像素数显示.
当取值为Yes时, 边框宽度与阴影深度随着实际视频的分辨率同等比例缩放.
五. [v4+ Styles]部分的风格行Style
Style定义了字幕的样式和位置. 所有的Style都在单独的Style里进行定义. 除了阴影/边框的类型和深度, 其余所有的风格设置都可以由字幕文本中的覆写代码所替代.
在定义风格之前先要有一行"Format:"来定义风格中每一个字段所代表的含义, 这些字段名称必须拼写准确, 顺序可以打乱, 字段名表示如下: