Chinaunix首页 | 论坛 | 博客
  • 博客访问: 649078
  • 博文数量: 289
  • 博客积分: 7063
  • 博客等级: 少将
  • 技术积分: 3140
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-31 18:47
个人简介

不停修炼,不断成长!

文章分类

全部博文(289)

文章存档

2012年(2)

2010年(2)

2008年(2)

2007年(4)

2006年(279)

我的朋友

分类:

2006-05-01 14:58:49

介绍字幕和字幕软件vobsub及其简单设置。字幕最常见的是idx/sub(直接从DVD光盘上提取的字幕格式)和文本格式的srt,ssa/ass几种格式。
  vobsub目前的版本2.32,根据目前操作系统的情况,建议安装2.23,2.29和2.32这3个版本。2.23比较稳定,适合各种操作系统,2.29以上的版本尽管功能更强大,但兼容性不是很好。
  SRT和SSA两种格式的字幕均为文本格式字幕,其共同的优点是:
* 只需要单独一个文件即可使用,不象SUB字幕还需要一个idx定义文件
* 字幕文件很小,都在几十KB以内,便于传播以及刻碟 :-)
* 用任何文本编辑工具都能够打开,非常便于对字幕内容进行细节修改和调整
* 使用者能够随心所欲定制观看影片时字幕的字体、大小、颜色等等
* 都被VobSub直接支持
  而在SRT和SSA两者之间比较,SRT格式只有时间码和文本,太过于简单,很容易因设置等问题导致在看影片时产生乱码,新手使用起来会感觉麻烦;而SSA格式可以在字幕内附带作者信息、修订信息、字幕参数等,更可以预先即定义好字幕播放时使用的字体、大小、风格等多种内容,兼有SRT字幕和SUB等图形字幕的优点。所以,SSA字幕比SRT字幕应该更有优势,笔者也想在这里大力提倡使用SSA格式字幕。总之,对于稍有经验的玩家,文本格式的字幕肯定是最好的选择。
  我们要学好SSA主要从两个方面着手:一个是SSA文件的组成结构;一个是SSA代码。
一.SSA文件的组成结构
SSA文件主要由三大部分组成:[Script Info]部分,[v4 Styles]部分和[Events]部分。
1.[Script Info]部分
PlayResX: 384
PlayResY: 288
384×288是标准的4:3画面分辨率之一。ssa字幕里的坐标(字幕的位置)即根据这2个数值的范围来定义。16:9宽银幕的片子略做调整即可。
  这里主要介绍文件本身和制作者的信息,这里面最重要的两项是PlayResX和PlayResY,它实际上是按给定的PlayResX和PlayResY数值将屏幕按比例化分,屏幕的左上亲?晡?0,0),右下角坐标为(PlayResX数值,PlayResY数值).这两个值最好是和视频文件的长宽相同,这样在下面[Events]部分文本位置坐标的设定很方便而且准确.
  当然这两个值也可能和原视频文件的长宽不同,比如视频文件尺寸为640x360,而PlayResX:384,PlayResY: 288,如同前面所说的,它是将屏幕长宽按384:288来化分的.一旦这样划定,下面的各种坐标设定都要以384和288为根据.
  特别要注意的是:对于一个已经存在并且文本坐标都设置好的SSA文件,如果它的PlayResX和PlayResY数值和视频文件的长宽尺寸不符(包括成比例的情况,比如视频文件尺寸为640x360,而PlayResX:320,PlayResY: 180),我们不要简单的把PlayResX和PlayResY数值改成屏幕尺寸,这样将导致字幕失真,是因为文本部分的尺寸并没有改,仍按照原来的PlayResX和PlayResY数值设定.如果有较多的坐标设定,就不要改原来的PlayResX和PlayResY数值,在原基础上编辑.
2.[V4 Styles]部分
  这是个存放[Events]部分里所用到的各种字体信息的地方.可以存在多种字体,每种字体有多种特征.当[Events]部分的Name项引用到这里的某种字体时,则意味这该字体的各种特征也被引用.字体的特征还可以在文本行中修改,这将在[Events]部分讨论.
  常见的字体属性有Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding  
  我们可以再定义一个Style,并命名为mine,如Style: mine,华文新魏,18,&HFF0000,&HFF80FF0,&Hffffff,&Hffffff,0,0,1,2,1,2,20,20,20,0,134
即可以这样:
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle,Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,华文彩云,18,&Hff0000,&Hff8080,&Hffffff,&Hffffff,0,0,1,2,1,2,20,20,20,0,134
Style: mine,华文新魏,18,&HFF0000,&HFF80FF0,&Hffffff,&Hffffff,0,0,1,2,1,2,20,20,20,0,134
  有了具体经验后,一般可以不作调整,需要改动的可以是“Fontname”,如改成黑体, “Fontsize”,做字幕字号24比较合适。至于最后的“Encoding”,134表示简体中文的编码,繁体中文的编码为136。  
  下面对各项作一说明,并列出属性的取值及范围
Name ---字体名称---[Events]部分将引用该项,比如Default,Font1等
Fontname ---所使用的字型---比如黑体,楷体_GB2312等.对新载入的SSA文件,VOBSUB不会识别出宋体以外的字型,都按宋体输出.但可以在DirectVobSub中重新定义
Fontsize ---字体大小---常用范围8-72
PrimaryColour ---主体颜色---颜色格式为&HXXXXXX,十六进制,X取值为0-f
SecondaryColour ---次要颜色---格式同上,卡拉OK中使用,即变色前的颜,变色后显示主体颜色
TertiaryColour ---边框颜色---格式同上
BackColour ---阴影颜色---格式同上
下面是一些常用颜色的代码,以便在文件中直接添加和编辑:
&Hffffff   白       &H8080ff   浅红            
&H000000   黑       &H80ffff   浅黄    
&H0000ff   深红     &HFF8000   亮蓝
&H00ffff   深黄     &H80ff00   浅绿
&Hff0000   深蓝     &H00ff00   亮绿
&H008000   深绿     &Hff00ff   紫红(偏紫)
&H0080ff   橙       &H8000ff   紫红(偏红)
&Hff0080   紫       &Hffff00   浅蓝
Bold ---粗体---0关闭,-1开启
Italic ---斜体---0关闭,-1开启
BorderStyle ---边框样式---取值1:正常,取值3:有一覆盖区域
Outline ---边框宽度---取值范围1-4,数字越大边框越宽
Shadow ---阴影距离---取值范围0-4,数字越大阴影越厚
Alignment ---对齐方式---这是重中之重,学懂对齐方式等于学懂了一半的SSA,其用法将在下面的代码部分作详细的介绍,这里只作简单的说明(下面各位置的数字就是Alignment的取值,很好记:从1-11,没有4和8这两个数,其余都是连续排列):
  左   中   右
上 5   6   7
中 9   10   11
下 1   2   3
MarginL ---字幕距左边的距离---取值范围0-PlayResX的数值
MarginR ---字幕距右边的距离---取值范围0-PlayResX的数值
MarginV ---字幕高度---取值范围0-PlayResY的数值
 
AlphaLevel---字体透明度---透明度格式为&HXX,十六进制,X取值为0-f
Encoding ---编码---简体134,繁体138
3.[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
  从这里开始就是字幕部分了,以“Dialogue: Marked=0,0:00:01.34,0:00:02.05,Default,,0000,0000,0000,,”定义开头。如果只是单纯做字幕用,那么这句后面就是字幕部分了,而字幕的格式根据[V4 Styles]里设置的来显示。Default可以换用上面设置的mine,那么显示的格式是按照mine里面设定!
  这里是将[v4 Styles]部分中已定义的字体提供给字幕,并能对字体的各属性重新定义;通过特定的SSA代码实现特效.  
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Marked---标记---一般都设为0
Start ---字幕开始时间---格式0:00:00.00最小单位0.01秒
End ---字幕结束时间---格式同上
Style ---字体名称---引用的是[v4 Styles]部分中的Name项
Name ---名字---注意这个Name和[v4 Styles]部分中的Name完全不同,相当于注释,一般省略,省略后只留一逗号.
MarginL---是对[v4 Styles]部分MarginL值的重新设定,0000表示采用原值;若不为零,则代替原值(此时原值不再起作用)
MarginR---是对[v4 Styles]部分MarginR值的重新设定,用法同上
MarginV---是对[v4 Styles]部分MarginV值的重新设定,用法同上
Effect---这里是SSA为编辑人员方便使用动态效果而自定义的代码,有Scroll up,Scroll down,Banner和Karaoke四种形式.为集中学习这里就不作介绍将其放到SSA代码部分说明.
Text---字幕区---在这里可以添加代码改变字体属性,实现多种特效
  其实[v4 Styles]部分就是一个存放各种字体以及该字体属性初始值的一个场所,它的大小,颜色,字幕所在的位置等信息都放在这里;而[Events]部分则是把[v4 Styles]部分中的各个字体应用到文本中去,并且能够对已定义的字体的各种属性进行修改以达到需要的效果.打个比方,几种不同类型的木材,具有各自的原始尺寸颜色,经过加工改变大小涂上新的颜色(或者直接使用原料),从而做成各种家俱材料.[v4 Styles]部分就相当于放置这些原始木材的仓库,而[Events]部分则是执行怎样加工木材并将其安装到家俱上
--------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------
二.下面介绍SSA代码的用法
SSA代码
首先对下面代码中用到的符号说明一下:
<..>---参数
[..]---可选项      
<../..>---任选其中一项
规定:所有代码之前加\
  所有代码放在括号{}内,\N,\n,\h例外。
\N---换行---换行后两行之间没有空隙
\n---空格---或直接按空格键,超出范围自动换行
\h---空格---或直接按空格键

\b<0/1>---粗体---0关闭,1开启
\i<0/1>---斜体---0关闭,1开启

\bord---边框宽度---width取值范围1-4,数字越大边框越宽
\shad---阴影距离---depth取值范围0-4,数字越大阴影越厚

\r