northbeg吧 关注:103贴子:3,434
  • 17回复贴,共1

【电脑】SSA/ASS动态字幕详解

只看楼主收藏回复

SSA/ASS动态字幕详解 (2012-05-02 03:07:28) te style="font-style: normal; line-height: 23px; padding-top: 0px; padding-right: 20px; padding-bottom: 0px; padding-left: 32px; height: 23px; min-width: 1px; overflow-x: visible; width: 34px; display: inline-block !important; background- -28px; background-repeat: no-repeat no-repeat;" >转载▼te>


IP属地:广东1楼2013-01-30 19:23回复

    一、基础篇:
    我们先来了解一下ssa的基本结构,用记事本打开ssa文件,如下:
    [Script Info]
    ScriptType: v4.00
    Collisions: Normal
    PlayResX: 384
    PlayResY: 288
    Timer: 100.0000
    [V4 Styles]
    [V4 Styles]
    Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
    Style: Default,Arial,17,&HEFEFEF,&H000000,&H000000,&H0F0F0F,-1,0,1,1,0,2,30,30,2,0,1
    ps:顺便讲一下ASS字幕格式:
    [V4+ Styles]
    Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic,Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
    Style: ChText,宋体,17,&H00FFFFFF,&H00000000,&H00FF8000,&H00FF8000,-1,0,0,0,100,100,0,0,1,1,2,2,0,0,2,134
    [Events]
    Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
    Dialogue: Marked=0,0:00:04.16,0:01:00.46,Default,,0000,0000,0000,,--==圣城家园SCG字幕组 仅供翻译交流使用 禁止用于商业用途
    Dialogue: Marked=0,0:01:04.16,0:02:00.46,Default,,0000,0000,0000,,翻译:卉木萋萋 听雨浪子 \N校对:inmelae 时间轴:九洲客
    Dialogue: Marked=0,0:02:06.67,0:02:09.13,Default,,0000,0000,0000,,如果被他们发现了...
    Dialogue: Marked=0,0:02:09.34,0:02:11.30,Default,,0000,0000,0000,,这儿的酒有上百万瓶
    Dialogue: Marked=0,0:02:11.50,0:02:12.99,Default,,0000,0000,0000,,你觉得他们会知道少了一瓶么?
    下面开始分析:
    ssa/ass文件主要分为三大部分:[Script Info][v4 Styles][Events],各部分具体功能如下:
    [Script Info]——该部分包含了这个字幕文件的大致信息,"[Script Info]"在ssa字幕中必须是该脚本的第一行
    ScriptType:v4.00 版本号,默认即可(这个会影响字幕特效的一些命令,ssa用v4.00,ass用v4.00+)
    Collisions: Normal 当字幕发生冲突时的处理方法,基本上都是Normal,没见过其他的-_-
    PlayResX: 该字幕所加载的影片的X轴长度。
    PlayResY: 该字幕所加载的影片的Y轴长度。
    Timer: 100.0000 时间的精确程度,用默认的100.0000即可。
    PlayResX,PlayResY 就是将屏幕画成坐标,左上角为(0,0),右下脚为(PlayResX,PlayResY)这两个数值最好与要转换出的影片的分辨率相同,这样在[Events]部分里确定坐标比较方便。
    [v4 Styles]——该部分包含了这个字幕文件的样式与风格,包括字体,颜色,字号等等(注意英文的大小写)
    Format行:该行是ssa/ass字幕样式的参数名称
    Name: 对一种字幕样式的命名。在[Events]部分里将引用该项。
    Fontname: 字体类型。就是仿宋体,黑体等。(※一定是你C:\WINDOWS\Fonts目录下有的字体)
    Fontsize: 字体大小。常用范围8~72
    PrimaryColour: 主体颜色。6位十六进制BGR值,格式为&HBBGGRR(关于颜色后面详细介绍)
    SecondaryColour: 第二颜色。格式同上。当一行字幕为了防止和其他字幕重叠而被自动移开时,为了以示区别就会显示出这种颜色。


    IP属地:广东本楼含有高级字体2楼2013-01-30 19:24
    收起回复
      TertiaryColour: 边框颜色。ass中该字段为OutlineColour(描边颜色),格式同上
      BackColour: 阴影颜色。格式同上
      Bold: 是否使用粗体。0为关闭,1或-1为开启
      Italic: 是否使用斜体。0为关闭,1或-1为开启
      Underline:下划线。0为关闭,-1为开启
      Strikeout.:删除线。0为关闭,-1为开启
      ScaleX:水平标尺。描述文字的宽度,单位[%]
      ScaleY:竖直标尺。描述文字的高度,单位[%]
      Spacing:字间距。字符之间的额外间隔,单位[像素]
      Angle:角度。字幕行预先旋转过的角度,可以为浮点小数。单位[°]
      BorderStyle:边框样式。1=描边 + 投下阴影,3=不透明方框(效果自己试验)
      Outline: 边框宽度。如果BorderStyle为1,那么这个字段指定描边的宽度,取值为0~4,数值越大,边框越粗
      Shadow: 阴影深度。如果BorderStyle为1,那么这个字段指定投下的阴影的深度,取值为0~4,数值越大,阴影越厚
      Alignment: 字幕文字的对齐方式。1=左对齐,2=中对齐,3=右对齐,4=置顶,8=置中,5=1+4=置顶左对齐,6=2+4=置顶中对齐,7=3+4置顶右对齐,9=1+8=置中,10=2+8=置中中对齐,11=3+8=置中右对齐
      ps:字幕的对齐方式非常重要,一系列动态特效(比如旋转,缩放等)的基点都由此设定。学懂对齐方式等于学懂了一半的SSA,下面各位置的数字就是Alignment的取值,从1-11,没有4和8这两个数,其余都是连续排列,很好记:




      5
      6
      7

      9
      10
      11

      1
      2
      3
      ASS([v4+ Styles])取值有修改,具体如下(其实和PC数字小键盘的排列一样,真是人性化的修改):




      7
      8
      9

      4
      5
      6

      1
      2
      3
      MarginL: 字幕距左边的距离。取值0~PlayResX
      MarginR: 字幕距右边的距离。取值0~PlayResX
      MarginV: 字幕距底边的距离。取值0~PlayResY
      AlphaLevel: 字体透明度。取值0~255
      Encoding: 字幕的编码方式。134=GB2312(简体中文),136=BIG5(繁体中文),就压片而言,两种足矣。
      Style行:该行是根据format行所定义的实际显示样式参数值。其中的每一个值都与Format行的参数名称相对应
      简单来说,在[v4 Styles] 部分,我们首先要在format行中设置要启用哪些参数,然后到style行设置具体的参数值,最后在字幕正文部分通过style行的第一个参数"style name"调用该样式的设置的风格来显示字幕文字。调用方式如下:
      Dialogue: Marked=0,0:00:00.20,0:00:03.30,New Style,NTP,0000,0000,0000,,UC0079年12月24日
      红字部分就是你所用的某种风格的字幕的名称。
      [Events] ——字幕的详细设定,从这里开始,就是正式的字幕部分了(注意英文大小写)
      Format语句:这一句申明ssa字幕的时间轴语句的描述格式,最后一个是文本,可以包含逗号。各参数意义如下:
      Marked:标记符号.Marked=0为未标记,Marked=1为已标记
      Start: 字幕开始时间。精确到0.01秒,格式为0:00:00:00(Hrs:Mins:Secs:hundredths),注意小时的位置只有一位数
      End: 字幕结束时间。
      Style:字幕样式名称。引用的是[v4 Styles]部分中的Name项,呼应上文。如果引用的样式不存在或者名称不对时,将采用缺省样式(Default)。如果[v4 styles]部分不存在"Default"样式的定义,将采用软件作者的缺省定义:字体使用"Aria",主色为白色,字符集为Western
      Name: 角色名。表示在对话中,这句话是哪个角色说的,只起一个注释作用,一般省略,省略后只留一个逗号。不要和[v4 Styles]部分的Name搞混。


      IP属地:广东本楼含有高级字体3楼2013-01-30 19:24
      回复
        MarginL:左边距。对[v4 Styles]部分的MarginL值进行重新设定。0000表示按照样式中定义的边距来显示,若不为零,则代替原值,此时原值不再起作用。
        MarginR:右边距。对[v4 Styles]部分MarginR值进行重新设定。用法同上。
        MarginV:垂直边距。对[v4 Styles]部分MarginV值进行重新设定。用法同上。
        Effect:简易变换效果。可写可不写 这是为方便使用动态效果而定义的代码,包含以下三种特效,只能选其一。
        Scroll up;y1;y2;delay 字幕向上滚动,y1,y2定义了向上滚动的字幕的出现位置和消失位置,delay是该段字幕移动时的延迟量,取值1~???,上限不定,数值越大,速度越慢。具体换算为文字每移动1,所需时间为(1000/delay) 秒。
        Scroll down;y1;y2;delay 字幕向下滚动,方法同上。
        Banner;delay;lefttoright, 强制字幕做单行横向移动,lefttoright=0时,字幕由右向左移动,lefttoright≥1时,字幕由左向右移动。Banner主要用在片头的郑重声明。
        Text:字幕文字区。在这里,我们可以添加各种静态、动态代码,来改变字幕文字的属性,实现绚丽的特效。
        Dialogue语句:字幕的具体内容部分,所有的字幕内容都以Dialogue语句来表现。语句的书写格式就是Format语句说明的格式。
        如果单纯的作为视频的字幕,到这里就可以了。当然我们是为了制作动态水印字幕,所以还要还要用到各种各样的代码来完成。
        二、进阶篇:
        静态代码:
        ※ 注意:所有代码必须以 \ 开头,除换行和空格代码外,其余代码必须放在{ }内
        \n 换行。好像是当字幕在一行显示不完时才换行,不是很清楚
        \N 强制换行。
        \h 强制空格。示例:Dialogue:Marked=0,0:00:00.86,0:00:30.62,Default,,0000,0000,0000,,zgliu\h制作
        {\b?} 加粗。?=1,开启加粗;?=0,关闭加粗。
        {\i?} 斜体。?=1,开启斜体;?=0,关闭斜体。
        {\u?} 下划线。?=1,开启下划线;?=0,关闭下划线。
        {\fn???} 字体。???=字体名称。
        {\fs???} 字号。???=字体大小。
        {\fsp???} 字间距。???取值0~PlayResX
        {\fsc(x or y)???} 文字的高宽比。X为宽度,Y为高度,???为百分比,100%为正常。
        {\bord???} 文字轮廓。???取值0~∞,取值越大轮廓越粗,0为无轮廓。
        {\shad???} 阴影深度。???取值0~∞,取值越大阴影越深,0为无阴影。
        {\fr[x/y/z]?} 字体旋转。x为绕x轴旋转,y为绕y轴旋转,z为绕z轴旋转(使用时选其一);? 为旋转角度(为正时逆时针转,为负时顺时针转)。
        {\a&H(00~FF)&} 更改字体透明度。00为不透明,FF为全透明
        {\<1/2/3/4>a(00~FF)&H&} 主/次/外框/阴影透明度设定
        {\an?} 设定字幕在屏幕上位置。?=1~9,位置分布按照小键盘数字的顺序。
        {\k?} 卡拉OK效果时,第二颜色的持续时间。单位0.01秒,比如{\k70} 就是持续0.7秒。如果{\k70}后面没有字幕文字,就在当前位置停留0.7秒。
        {\c&H(bbggrr)&} 更改主字幕颜**bggrr为六位的十六进制RGB值, 但是顺序与RGB相反,所以用BGR表示(比如,黄色的RGB值为FFFF00,我们就要写成00FFFF)。
        {\<1/2/3/4>c&H(bbggrr)&} 主/次/外框/阴影字幕颜色设定
        {\r[<style>]} 取消一行中之前的所有代码效果,并强制恢复(restore)到指定的<style>风格,如果没有指定<style>,则恢复(reset)到这一行的默认风格。
        动态代码:
        {\move(x1,y1,x2,y2,[t1,t2])} 任意坐标移动移动。x1,y1为字幕移动的起点,x2,y2为字幕移动的终点;t1,t2是可选项,表示字幕移动开始和结束的时间,单位0.001秒,不能超出该段字幕的时间轴,缺省时,字幕的移动时间以该段字幕的时间轴为准。
        示例:
        Dialogue:Marked=0,0:00:00.86,0:00:30.62,Default,,0000,0000,0000,,{\move(40,24,200,24,135,2135)}水平向右
        Dialogue:Marked=0,0:00:00.86,0:00:30.62,Default,,0000,0000,0000,,{\move(40,24,40,100,135,2135)}垂直向下
        {\fad(t,a)} 淡入。t为淡入经过的时间,a为淡入开始的透明度
        {\fad(a,t)} 淡出。t为淡出经过的时间,a为淡出结束的透明度
        下面列出几个简单嵌套的例子,方便大家使用。
        控制性放大:{\fs15}{\t(0,800,\fs30)} 或者 {\fs15\t(0,800,\fs30)}
        控制性缩小:{\fs30\t(0,800,\fs15)}
        控制性缩小放大:{\fs30\t(0,800,\fs15)}{\t(2000,2800,\fs24)} 或者 {\fs30\t(0,800,\fs15\t(2000,2800,{\fs30\t(0,800,\fs15\t(2000,2800,\fs24))}
        字体变长:{\t(0,500,\fscx500)}
        字体变高:{\t(0,500,\fscy500)}
        字体变长变高:{\t(0,500,\fscx500,\fscy300)}
        极端效果:{\t(0,500,1,\fscx0,\fscy500)}和{\t(0,500,1,\fscx1000,\fscy0)}
        ps:默认大小是fscx100,fscy100。极端的效果是将字体无限拉长或者压扁,如此结合时间轴控制可以实现光影,拉慕显示等特效
        字体间距缩放:{\t(0,800,\fsp20)}{\t(800,1300,\fsp5)}或者{\t(0,800,\fsp20\t(800,1300,\fsp5))} 一般是作成先放大间距再缩小间距的特效,比较动感。


        IP属地:广东本楼含有高级字体4楼2013-01-30 19:24
        回复

          字幕效果展示
          圣城家园(CMCT)

          [Script Info]
          Synch Point:0
          ScriptType:v4.00
          Collisions:Normal
          PlayResX:640
          PlayResY:360
          Timer:100.0000
          [V4 Styles]
          Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
          Style: Default,Arial,17,&HEFEFEF,&H000000,&H000000,&H0F0F0F,-1,0,1,1,0,2,2,2,8,0,1
          [Events]
          Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
          Dialogue: Marked=0,0:00:39.86,0:00:42.64,Default,NTP,0000,0000,0000,!Effect,{\fn宋体\fs20\shad2\4a&H50&\3c&HFF8000&\4c&HFF8000&}从我躺在退役军人医院{\r}\NWhen I was lying there in the VA hospital
          Dialogue: Marked=0,0:00:45.69,0:00:49.42,Default,NTP,0000,0000,0000,!Effect,{\fn宋体\fs20\shad2\4a&H50&\3c&HFF8000&\4c&HFF8000&}我就开始做飞翔的梦{\r}\NI started having these dreams of flying.
          ; // 推荐使用“StrEdit字幕调整器”批量添加前缀 -Noted by zgliu
          ; // 中文命令参考前缀:{\fn宋体\fs16\shad2\4a&H50&\3c&HFF8000&\4c&HFF8000&}
          ; // 英文命令参考前缀:{\fnTahoma\fs20\shad2}


          IP属地:广东本楼含有高级字体5楼2013-01-30 19:25
          回复

            糯米网(HALFCD-NORM)

            人人影视(YYeTs)


            IP属地:广东本楼含有高级字体6楼2013-01-30 19:25
            收起回复
              特效字幕模板
              [Script Info]
              ;SrtEdit 6.2.2012.322
              ;Copyright(C) 2005-2012 Yuan Weiguo Title:
              Original Script:
              Original Translation:
              Original Timing:
              Original Editing:
              Script Updated By:
              Update Details:
              ScriptType: v4.00
              Collisions: Normal
              PlayResX: 384
              PlayResY: 288
              Timer: 100.0000
              Synch Point:
              WrapStyle: 0
              ScaledBorderAndShadow: no [V4 Styles]
              Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
              Style: Default,Arial,17,&HEFEFEF,&H000000,&H000000,&H0F0F0F,-1,0,1,1,0,2,30,30,2,0,1 [Events]
              Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
              Dialogue: Marked=0,0:00:42.67,0:00:45.02,Default,NTP,0000,0000,0000,!Effect,{\fn宋体\fs22\shad2\4a&H50&\3c&HFF8000&\4c&HFF8000&}成龙
              Dialogue: Marked=0,0:00:48.37,0:00:50.25,Default,NTP,0000,0000,0000,!Effect,{\fn宋体\fs22\shad2\4a&H50&\3c&HFF8000&\4c&HFF8000&}珍妮.佛洛郝威
              Dialogue: Marked=0,0:01:15.11,0:01:17.87,Default,NTP,0000,0000,0000,!Effect,{\fn宋体\fs22\shad2\4a&H50&\3c&HFF8000&\4c&HFF8000&}片名: 燕尾服
              Dialogue: Marked=0,0:01:21.36,0:01:23.79,Default,NTP,0000,0000,0000,!Effect,{\fn宋体\fs22\shad2\4a&H50&\3c&HFF8000&\4c&HFF8000&}杰森.艾萨克斯
              Dialogue: Marked=0,0:02:48.00,0:02:48.60,Default,NTP,0000,0000,0000,!Effect,{\fn宋体\fs22\shad2\4a&H50&\3c&HFF8000&\4c&HFF8000&}快点{\r}\NCome on.


              IP属地:广东7楼2013-01-30 19:56
              回复(2)
                挽尊@淡写流年碎语 @洛清雅


                IP属地:广东8楼2014-03-13 14:07
                收起回复
                  请问一下有没有第二个糯米网(HALFCD-NORM) 的模板编码??谢谢~


                  9楼2014-11-27 11:16
                  回复
                    怎么做到循环滚动呀,代码是什么呢?


                    10楼2016-10-26 14:35
                    回复
                      thx


                      IP属地:江苏11楼2018-07-23 23:42
                      回复