SSA與ASS字幕


SSA字幕與ASS字幕

  SSA全稱SubStationAlpha,是由CSLow(又稱Kotus)創建的一種字幕格式,用以實現比傳統字幕諸如srt等格式更為復雜的功能.SSA目前的版本為v4.00.SSA同時也是一款軟件的名稱,專用於創建和編輯SSA格式的字幕。

  ASS是一種比SSA更為高級的字幕格式,全稱AdvancedSubStationAlpha,實質是SSAv4.00+版本.它擁有比SSA更多的功能.

它們主要特征如下:

  1.SSAv4.00與之前的SSA版本格式不同.v4可以閱讀和加載以前版本的格式,但之前版本不支持v4以上的編寫格式.換句話說,SSA從v4版本開始可以閱讀它認識的命令而忽略不認識的命令,從而可以向下兼容,也可以向上兼容.

  2.文件為普通的DOS文本格式.也就是說它可以用記事本打開編輯,同時需要注意編寫出錯時有可能導致無法預料的結果.

  3.文件編寫時所划分的各部分,從形式上來說類似於ini文件,但它並非真正的ini文件

  4.各部分中的絕大多行都以一說明性的文字加上冒號來開頭,指明該行包含哪一些信息.

  5.每一行中的信息都以逗號分隔.因此風格名和人物角色名中要求不能出現逗號.

  6.事件部分([Events])里的各行可以不分先后.也就是說人物對白行可以不按時間順序排列

  7.不正確的行會被忽略.同時會給出警告指出被忽略的行數

  8.一行里包含了完整的信息,必須在一行內寫完,不能分成多行

  9.當文件中引用了一個未知的風格名(style)時,加載時會用默認的風格來替代(Default)

  10.當一個風格(Style)中引用了系統中沒有安裝的字體,則會用Arial字體來代替.

主要組成部分

[ScriptInfo]

  這一部分包含了文件內容的標題和總體信息,這一行必須是v4版本文件的第一行

[v4Styles]

  字幕正文使用的風格都在這一部分做出相關定義.

[Events]

  這部分包含所有的事件,有字幕,評論,圖片,聲音,影片和命令.基本上屏幕中出現的所有內容都集中在這一部分.

[Fonts]

  如果想把字體內嵌入字幕文件,那么字體文件須采用數字編碼后放在這一部分.只有truetyle字體才能內嵌入SSA/ASS文件.

  每一個內嵌字體文件以一行開頭,格式如下:

  開頭的"fontname"必須全部用小寫,如果大寫會讓ASS文件視其為文件編碼的一部分.

  <文件名>是SSA文件保存字體時使用的文件名,命名規則如下:

  truetype字體原來的字體名稱加一條下划線

  如果是粗體則加一個"B"

  如果是斜休則加一個"I"

  加一個數字表明字體編碼(字符集)最后加上".ttf"例如: fontname:comic_B0.ttf

  在這一行之后是一些可打印的字符組成的行,代表組成這個字體的二進制字符,除了最后一行可能短些,其余每行有80個字符. 從二進制轉換到字符用的是UUE-encoding的編碼方式,

[Graphics]

  如果選擇內嵌圖片,那這一部分就包含了所有用到的數字編碼格式的圖片文件.開頭一行的格式如下:

  開頭的"filename"必須為小寫,如果大寫會被認為是文件編碼的一部分. <文件名>是SSA文件保存圖片時使用的文件名,它與[Events]事件部分中提及的圖片名稱一致.

  SSA會把文件中找到的任何文件保存到SSA的程序目錄中的"Pictures"子目錄中.例如:c:\programfiles\SubStationAlphav4.00\Pictures.SSA會先從文件本身中尋找這些編碼好的文件,但當沒有找到時會去"Pictures"這個子目錄里去找.

  注:現在的SSA文件已經很少包含"[Pictures]"或者"[Fonts]"這兩個部分.因為這些功能只被SubStationAlpha這一個程序所支持.而其它的filter(Vobsub/Vsfilter/AveryLeeSubtitlerfilter)都不支持.

[Script Info]詳細參數

;分號,后面可以跟任何內容.這一行是說明性文字,加載字幕時不顯示 注意此類型行必須要把分號放最前.老版本不是用分號而是用!:

Title:標題,如果沒有提供,則自動使用<untitled>

OriginalScript:劇本的最初作者,若沒有提供則自動使用<unknown>

OriginalTranslation:(可選)原劇本的翻譯者,若沒有提供則該行不顯示

OriginalEditing:(可選)原劇本的編者和校對,若沒有提供則該行不顯示

OriginalTiming:(可選)原劇本的時間軸人員,若沒有提供則該行不顯示

SynchPoint:(可選)從哪個時間點開始加載字幕,若沒有提供則該行不顯示

ScriptUpdatedBy:(可選)對原劇本的修改/更新人員,若沒有提供則該行不顯示

UpdateDetails:更新的具體信息,若沒有提供則該行不顯示

ScriptType:SSA的版本信息,

Collisions:當字幕時間重疊時,前后字幕的堆疊方式.值為"Normal"時,后一條字幕出現在前一條字幕的上方. 如果值為"Reverse"時,前一條字幕往上移動給后一條字幕讓位.

PlayResY:文件所使用的視頻高度參考標准,如果使用Directdraw回放SSAv4會自動選擇最相近的啟用的設置

PlayResX:文件所使用的視頻寬度參考標准,如果使用Directdraw回放SSAv4會自動選擇最相近的啟用的設置. 如果只提供了PlayResX,PlayResY其中一種,那另一種會按實際視頻的像素值為准.

PlayDepth:加載字幕時使用的色深(顏色的數目),如果使用Directdraw回放SSAv4會自動選擇最相近的啟用的設置

Timer:字幕加載的速度調整,數值為百分數.例如"100.0000"代表100%.其數值有4位小數點. 它相當於對ASS字幕的時間速度進行乘法運算. 當速度大於100%時,總時間會縮短,而相應的字幕會越來越靠前.當速度小於100%時,總時間會延長,而相應的字幕會越來越靠后.

WrapStyle:定義默認的換行方式.

ScaledBorderAndShadow:指定邊框寬度與陰影深度是否隨着視頻分辨率等比例縮放.可為Yes,No.默認為No. 當取值為No時,邊框寬度與陰影深度完全按照指定的像素數顯示. 當取值為Yes時,邊框寬度與陰影深度隨着實際視頻的分辨率同等比例縮放.

[V4+ Styles]詳細參數

  Style定義了字幕的樣式和位置.所有的Style都在單獨的Style里進行定義.除了陰影/邊框的類型和深度,其余所有的風格設置都可以由字幕文本中的覆寫代碼所替代.

  在定義風格之前先要有一行"Format:"來定義風格中每一個字段所代表的含義,這些字段名稱必須拼寫准確,順序可以打亂,字段名表示如下:

  Fontname,Fontsize,PrimaryColour,SecondaryColour,,BackColour,Bold,Italic,BorderStyle,Outline,Shadow,Alignment,MarginL,MarginR,MarginV,,Encoding

字段1:Name.風格(Style)的名稱.區分大小寫.不能包含逗號.

字段2:Fontname.使用的字體名稱,區分大小寫.

字段3:Fontsize.字體的字號

字段4:PrimaryColour.設置主要顏色,為藍-綠-紅三色的十六進制代碼相排列,BBGGRR.為字幕填充顏色

字段5:SecondaryColour.設置次要顏色,為藍-綠-紅三色的十六進制代碼相排列,BBGGRR.在卡拉OK效果中由次要顏色變為主要顏色.

字段6:(),設置輪廓顏色,為藍-綠-紅三色的十六進制代碼相排列,BBGGRR.

字段7:BackColour,設置陰影顏色,為藍-綠-紅三色的十六進制代碼相排列,BBGGRR.

字段8:Bold.-1為粗體,0為常規

字段9:Italic.-1為斜體,0為常規

字段10:BorderStyle.1=邊框+陰影,3=純色背景.當值為3時,文字下方為輪廓顏色的背景,最下方為陰影顏色背景.

字段11:Outline.當BorderStyle為1時,該值定義文字輪廓寬度,為像素數,常見有0,1,2,3,4.

字段12:Shadow.當BorderStyle為1時,該值定義陰影的深度,為像素數,常見有0,1,2,3,4.

字段13:Alignment.定義字幕的位置.字幕在下方時,1=左對齊,2=居中,3=右對齊.1,2,3加上4后字幕出現在屏幕上方.1,2,3加上8后字幕出現在屏幕中間.例:11=屏幕中間右對齊.

字段14:MarginL.字幕可出現區域與左邊緣的距離,為像素數

字段15:MarginR.字幕可出現區域與右邊緣的距離,為像素數

字段16:MarginV.垂直距離

字段17:AlphaLevel.SSA字幕用來定義透明度

字段18:Encoding.指明字體的字符集或編碼方式.如0為英文,134為簡體中文,136為繁體中文.當文件為非UNICODE類型編碼時,該值對字幕的顯示起作用

[Events]詳細參數

  Dialogue類型的行(對話行)包括字幕對白,時間軸信息,以及對白的顯示方式.在對話行出現前必須有一條格式行Format來對逗號分隔的每個字段進行定義,該格式行中的每一個字段必須拼寫准確,內容如下:

  Start,End,Style,Name,MarginL,MarginR,MarginV,Effect,Text

  最后的一個字段永遠都是對白文字的字段,因此可以包含逗號.前面的字段順序可以改變

字段1:Marked.值為0表示該行為"未標識"行,值為1表示該行為"標識"行

字段2:Start.事件開始的時間,格式為0:00:00:00(時:分:秒:百分數),注意小時只有一位數

字段3:End.事件結束的時間.格式為0:00:00:00(時:分:秒:百分數),注意小時只有一位數

字段4:Style.該條字幕所使用的風格.風格的具體信息在[V4Style]這一部分中進行定義

字段5:Name.角色名,指出對白是由影片中哪位演員所說的.字幕加載時不顯示,只為了編寫時理解方便.

字段6:MarginL.使用新的與左邊緣的距離,為4位數字代表的像素值.0000代表使用當前Style定義的值.

字段7:MarginR.使用新的與右邊緣的距離,為4位數字代表的像素值.0000代表使用當前Style定義的值.

字段8:MarginV.使用新的垂直距離,為4位數字代表的像素值.0000代表使用當前Style定義的值.具體說明參見上面[v4+Style]里的說明

字段9:Effect.過渡效果.可以為空值,或者為三種過渡效果之一.效果名稱區分大小寫,必須拼寫准確.且不加任何引號:"Karaoke"是卡拉OK效果,每個字依次高亮顯示. "Scrollup;y1;y2;delay"滾動效果,指文字/圖片向上滾動.各參數以分號分隔. y1與y2是屏幕垂直區域的像素值,位置可以互換.當這兩個值都為0時則全屏幕內滾動 delay可取值1-100,代表滾動速度的降低值.當其為0時滾動速度最快.“Banner;delay”橫幅效果.所有文字被合並到單行,並從右至左橫向移動.delay的值可由1到100,代表橫幅移動速度的降低值.當其為0時移動速度最快.

字段10:Text.為對白字幕區域,是最終出現在屏幕上的字幕.任何位於第9個逗號后的內容均被看作是對白字幕,所以本身可以包含逗號. 在這一個字段中可以包含\n,\N,\h這三種分行/空格代碼,以及其它在大括號{}內的風格覆寫控制代碼

  在[Events]這一部分內,以Comment:開頭的行.它可以與其它類型的事件行包含一樣的信息,但不會被作為字幕加載到屏幕上.它起評論/說明的作用.

  在[Events]這一部分內,以Picture:開頭的行.它與Dialogue行包含一樣的控制信息,但是在字段10的位置指定要顯示的圖片完整路徑與圖片名稱.在前面字段指定的風格被忽略,滾動效果可以運用到圖片事件上.MarginL和MarginV被用來指定圖片與左邊緣與下邊緣的像素距離.當MarginL為0000時圖片水平居中顯示.當MarginV為0000時,圖片垂直居中.

  支持的圖片格式有.bmp,.jpg,.gif,.ico以及.wmf格式的圖片(不支持png)注意,只有SSA軟件能支持加載圖片事件,filter則不支持.

  在[Events]這一部分內,以Sound:開頭的行.它與Dialogue行包含一樣的控制信息,但是在字段10的位置指定要加載的聲音文件完整路徑與名稱,格式為.wav.風格與距離等值被忽略,而且結束的時間值也被忽略.該聲音會播放到它結束,或者播放到新的聲音行加入為止.注:各filter不支持加載聲音行

  在[Events]這一部分內,以Movie:開頭的行.它與Dialogue行包含一樣的控制信息,但是在字段10的位置指定要加載的視頻文件完整路徑與名稱,格式為.avi.風格與效果等值被忽略

  結束的時間值(End)指出影片畫面消失的時間,但如果avi文件仍然沒有結束,則其聲音仍然會持續播放.

  MarginL和MarginV被用來指定影片與左邊緣,上邊緣的像素距離(與圖片行不同).當MarginL為0000時視頻水平居中顯示.當MarginV為0000時,視頻垂直居中.

[Events]中Text詳細參數

\n軟性分行(回車),只在分行模式(WrapStyle)為2時有效.在其它分行模式下相當於一個空格

\N硬性分行(回車),在任何分行模式下都有效

\h硬性空格.它保證顯示字幕時不會在它的這個空格上分行(保證左右兩個詞在同一行)

\b<0或1>\b1令文字變為粗體.\b0強制文字不是粗體(bold) 當參數大於1時,會被作為字體的重量值.(注:大多字體只有量化到2級或3級的粗度,所以很少用到這個重量值) 字體重量值為100的倍數,如100為最細,400為普通,700為粗體,900為最粗

\i<0或1>\i1令文字變為斜體.\i0強制文字不是斜體(italic)

\u<0或1>下划線(underline)開關

\s<0或1>中划線(刪除線)開關(strikeout)

\bord<寬度>指定邊框寬度(border),像素數.可以為小數

\shad<深度>指定陰影深度(shadow),不能為負數

\be<0或1>模糊邊緣bluredges

\fn<字體名稱>指定使用系統中已安裝的字體,區分大小寫.如果使用的字體沒有安裝,則會用Arial來替代(fontname). 注字體名與fn間不能有空格,也沒有其它的括號等

\fs<字號>指定文字的大小,<字號>是一個指代高度的像素值,.(fontsize)

\fsc<x或y><百分數>縮放文字大小.<x或y>指定文字是橫向還是縱向縮放.<百分數>指定調整到百分之多少.同樣適用於矢量圖形.

\fsp<像素值>文字間增加額外的間隔(fontspacing),默認為0

\fr[<x/y/z>]<度數>文字旋轉一定的度數(fontrotation)

<x/y/z>表明文字沿着三維空間中哪個坐標軸旋轉. 原點由\org代碼來指定,否則由默認的定位點來決定(參見\pos的說明)

\fr默認代表\frz.<度數>可以為負值,可以大於360.此命令同樣適用於矢量圖形.

\fe<字符集>指定文字的編碼(fontencoding).例如0為英文,134為簡體中文,136為繁體中文.1為系統默認.

\c&H<bbggrr>&指定文字的顏色(color).<bbggrr>是一個十六進制的RGB數值,但顏色順序相反(藍-綠-紅).

<bbggrr>排在最前的00可以忽略不寫,例如{\c&HFF&}={\c&H0000FF&},為純紅色

\1c&Hbbggrr&,\2c&Hbbggrr&,\3c&Hbbggrr&,\4c&Hbbggrr&分別設定主要,次要,邊框,陰影顏色

\c相當於\1c,為字體本身填充顏色

\alpha&H<aa>&設定文字的透明度(alpha).<aa>是一個十六進制數值.00為全見,FF為全透明

\1a&Haa&,\2a&Haa&,\3a&Haa&,\4a&Haa&分別設定主要,次要,邊框,陰影顏色的透明度

\alpha一次性調整文字所有元素的透明度

\a<位置><位置>是一個數字代碼,用來代表字幕出現在屏幕中的位置(alignment)

1,2,3代表出現在畫面底端的字幕,分別為左對齊,居中,右對齊

5,6,7代表出現在畫面頂端的字幕,分別為左對齊,居中,右對齊(在1,2,3基礎上加了4)

9,10,11代表出現在畫面中間的字幕,分別為左對齊,居中,右對齊(在1,2,3基礎上加了8)當一行出現多個\a代碼時,只有最前面的一個有效

\an<位置><位置>為一數字代碼,代表字幕的位置,從1到9,與小鍵盤的數字鍵代表的位置一致 當一行出現多個\an代碼時,只有最前面的一個有效 注:一般情況下\a,\an設置字幕位置,但當有\pos,\move等代碼時,\a和\an設置的是文字的定位點.

\k<時間長度>卡拉OK效果,高亮之前文字使用次要顏色,高亮后使用主要顏色<時間長度>代表在下一小段出現高亮效果之前的當前段高亮停留時間,值為百分之一秒的倍數

\k<時間長度>按照每一分隔好的小段來進行高亮顯示

\kf或者\K<時間長度>是從左至右的流暢填充高亮

\ko<時間長度>,與\k相似,但在高亮之前文字邊框也被去掉,高亮后才顯示邊框

\q<方式>定義分行方式,即WrapStyle

值為0:智能分行,大致平均分行,不能完全平均時上面的行較長.

值為1:行尾分行,盡管排滿一整行后,再分到下一行

值為2:不分行,超出長度的行會排到屏幕以外.這種方式下,\n和\N都可以強制分行

值為3:智能分行,與方式0相似,但下面的行比較長

\r[<風格>]取消一行中之前的所有覆寫代碼效果,包括動態特效.(restore/reset)

<風格>令其恢復到指定的風格,如果沒有指定<風格>則恢復到這一行的默認風格

\t([<時值1>,<時值2>,][<加速度>,]<風格代碼>) 提供從一種風格轉到另一種風格的逐漸變化的動態效果.只有部分風格代碼可以用\t進行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM