本教程操作環(huán)境:windows7系統(tǒng)、Dell G3電腦。
ASS 是大多數(shù)字幕制作者所公認(rèn)的并且經(jīng)常使用的字幕格式。
【資料圖】
SubStation Alpha(Sub Station Alpha),簡稱SSA,是由CS Low(亦稱Kotus)創(chuàng)建,比傳統(tǒng)字幕格式(如SRT)功能更加先進(jìn)的字幕文件格式。該格式字幕的外掛文件以*.ssa作為后綴。
Advanced SubStation Alpha(ASS)是一種比SSA更為高級的字幕格式, 其實(shí)質(zhì)版本是SSA v4.00+。它是基于SSA 4.00+編碼構(gòu)建的。ASS的主要變化就是在SSA編寫風(fēng)格的基礎(chǔ)上增添更多的特效和指令。該格式字幕的外掛文件以*.ass作為后綴。
目前有很多播放器支持渲染SSA、ASS字幕。
ASS是可以兼容SSA格式的。
從零開始教你如何寫一個屬于自己的CMS系統(tǒng):進(jìn)入學(xué)習(xí) 你可以學(xué)到:ThinkPHP6 + LayUI + 內(nèi)容管理系統(tǒng)開發(fā) 等等
SSA/ASS字幕是純文本文件,這意味著它們可以用任意文本編輯器手工編輯,但必須要注意:解析器假定此腳本是遵循SSA標(biāo)準(zhǔn)中所定義的規(guī)則,在解析時任何錯誤都可能會導(dǎo)致無法預(yù)料的結(jié)果。
SSA/ASS腳本被劃分為類ini文件風(fēng)格的多個section。但它并不是標(biāo)準(zhǔn)的ini文件。該腳本最多包含五個section:[Script Info]、[v4+ Styles]、[Events]、[Fonts]、[Graphics]。
[Script Info]必須是整個文件的第一行。現(xiàn)在的SSA文件已經(jīng)很少包含[Fonts]和[Graphics]這兩個部分了。因?yàn)檫@些功能只被Sub Station Alpha這一個程序所支持,而其它的filter (Vobsub/Vsfilter/Avery Lee Subtitler filter) 都不支持。每個section中的大多數(shù)行都以某些說明性文字開頭,稱為“行描述符(line descriptor)”,以冒號結(jié)束。行類型(line type)主要包括:分號開頭的注釋行;Format:格式行;[Script Info]部分中的15個行類型;[v4+ Styles]部分的樣式行;[Events]部分的6個行類型。(行類型將在后續(xù)的每部分單獨(dú)介紹)。每一行中的信息字段用逗號分隔,所以角色名稱([Events]部分)和樣式名稱([v4+ Styles]部分)中不能含有逗號。行是不可分割。腳本中的每個條目都包含了一行中所有的信息,不能被分成多行。格式不正確的行會被忽略。[Events]部分的事件順序可以打亂輸入,仍可被正確播放,我們不能假定每個對話行都按照時間順序排列在腳本文件中。如果在腳本中使用了未知的樣式,那么將使用*Default樣式 。如果樣式指定了未安裝的字體,那么將使用Arial/宋體。以下是SSA/ASS文件中五個主要部分的簡要總結(jié):
這一部分包含了腳本的頭部和總體信息。[Script Info] 必須是 v4 版本腳本的第一行。
這一部分包含了所有樣式的定義。每一個被腳本使用的樣式都應(yīng)該在這里定義。ASS 使用 [v4+ Styles]。
這一部分包含了所有腳本的事件,有字幕、注釋、圖片、聲音、影像和命令?;旧?,所有在屏幕上看到的內(nèi)容都在這一部分。
這一部分包含了腳本中內(nèi)嵌字體的信息。
這一部分包含了腳本中內(nèi)嵌圖片的信息。
一個典型的[Script Info]部分是這樣的:
[Script Info]; This is a Sub Station Alpha v4 script.; For Sub Station Alpha info and downloads,; go to http://www.eswat.demon.co.uk/Title: Neon Genesis Evangelion - Episode 26 (neutral Spanish)Original Script: RoRoScript Updated By: version 2.8.01ScriptType: v4.00Collisions: NormalPlayResY: 600PlayDepth: 0Timer: 100,0000
此部分定義了多個行類型,其對應(yīng)含義如下:
| 腳本行 | 備注 |
|---|---|
| ; | 分號,后面可以跟任何內(nèi)容。只在腳本中用作注釋。加載腳本時不可見。分號必須是該行的第一個字符。舊版本中使用!:注釋 |
| Title | 標(biāo)題,對腳本的描述。如果未指定,自動設(shè)置為untitled |
| Original Script | 最初創(chuàng)建腳本的作者。如果未指定,自動設(shè)置為unknown |
| Original Translation | (可選)最初翻譯對話的人。如果未指定,該項(xiàng)不顯示 |
| Original Editing | (可選)最初腳本的編輯者,通常是對翻譯潤色和校對的人。如果未指定,該項(xiàng)不顯示 |
| Original Timing | (可選)最初的時間軸人員。如果未指定,該項(xiàng)不顯示 |
| Synch Point | (可選)指明什么時候腳本應(yīng)該開始播放。如果未指定,該項(xiàng)不顯示 |
| Script Updated By | (可選)對原腳本進(jìn)行更新的其他字幕團(tuán)體的人。如果未指定,該項(xiàng)不顯示 |
| Update Details | (可選)其他字幕團(tuán)體對原腳本更新的細(xì)節(jié)。如果未指定,該項(xiàng)不顯示 |
| ScriptType | SSA 腳本格式的版本。例如 V4.00。如果當(dāng)前使用的 SSA 程序版本舊于腳本的版本,將給出警告 |
| Collisions | 為了防止字幕重疊,它決定了字幕如何移動。如果設(shè)置為Normal,SSA 將嘗試使用「Margins」指定的位置來定位字幕。同時,字幕會垂直地移動來防止重疊。在Normal的防重疊模式下,新字幕會出現(xiàn)在已存在字幕的上方,但它會尋找最低的不產(chǎn)生重疊的位置,來填補(bǔ)其他字幕產(chǎn)生的「空隙」。如果設(shè)置為Reverse,已存在的字幕會上移給新字幕騰出空間。這意味這字幕總是可以自上向下地閱讀,但也意味著已存在的字幕可能會在新字幕出現(xiàn)之前出現(xiàn)在屏幕的中間。它會占用大量的屏幕區(qū)域。 |
| PlayResY | 渲染字幕時的渲染范圍的高度。如果使用Directdraw播放,SSA v4會自動選擇最接近的已啟用的設(shè)置 |
| PlayResX | 渲染字幕時的渲染范圍的寬度。如果使用Directdraw播放,SSA v4會自動選擇最接近的已啟用的設(shè)置 |
| PlayDepth | 渲染字幕時的顏色深度。如果使用 Directdraw播放,SSA v4會自動選擇最接近的已啟用的設(shè)置 |
| Timer | 腳本的計(jì)時器速度,使用浮點(diǎn)的百分比。例如,100.0000代表100%,保留四位小數(shù)。計(jì)時器速度是應(yīng)用于SSA時鐘的時間乘數(shù),以提供斜坡時間來擴(kuò)展或壓縮腳本的總時間。速度大于100%會減少腳本總時間,意味著字幕會逐步地越來越早地出現(xiàn);速度小于100%會增加腳本總時間,意味著字幕會逐步地越來越晚地出現(xiàn)(就像一個正的斜坡時間)。擴(kuò)展和壓縮只發(fā)生在腳本播放時,這個值不會改變腳本事件部分的實(shí)際時間。 |
| WrapStyle | 定義了默認(rèn)的換行方式。0:智能換行,分割比較均勻,上面的行較長。1:從行尾的詞換行,只有\(zhòng)N能強(qiáng)制換行。2:不換行,\n和\N強(qiáng)制換行。3:和0一樣智能換行,下面的行較長。 |
| ScaledBorderAndShadow | 指定邊框?qū)挾扰c陰影深度是否隨著視頻分辨率等比例縮放,默認(rèn)為No。 |
| 當(dāng)值為 No 時,邊框?qū)挾扰c陰影深度完全按照指定的像素?cái)?shù)顯示;當(dāng)值為 Yes 時,邊框?qū)挾扰c陰影深度隨著實(shí)際視頻的分辨率同等比例縮放。 |
在實(shí)際應(yīng)用中可能用到的是Title、PlayResX、PlayResY、WrapStyle等。
這一部分包含了所有樣式的定義。每一個被腳本使用的樣式都應(yīng)該在這里定義。區(qū)別于SSA,ASS 使用[v4+ Styles]關(guān)鍵字。典型的字段如下:
[V4 Styles]Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, EncodingStyle: DefaultVCD, Arial,28,11861244,11861244,11861244,-2147483640,-1,0,1,1,2,2,30,30,30,0,0
這一部分用來定義字幕的外觀和位置,以便[Events]部分直接引用。此部分由格式行(Format:)和樣式行(Style:)組成。除邊框樣式外,所有樣式都可以在[Events]部分使用代碼重設(shè)。
格式行和樣式行的內(nèi)容一一對應(yīng)。格式行定義了如何解釋樣式中的每個字段,因此格式行必須出現(xiàn)在所有的樣式之前,且格式行中列出的字段名必須拼寫正確!格式行允許在未來將新字段添加到腳本格式中,并且允許舊版本的軟件讀取它所識別的字段——即使字段順序已經(jīng)更改。包括如下23個字段:
Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
各字段含義如下:
| 格式名 | 備注 |
|---|---|
| Name | 樣式名稱(用于[Events]部分引用,區(qū)分大小寫,不能包含逗號) |
| Fontname | 字體名稱( Windows所使用的字體名稱,區(qū)分大小寫) |
| Fontsize | 字體大小(字號) |
| PrimaryColour | 主體顏色(一般情況下文字的顏色) |
| SecondaryColour | 次要顏色(在卡拉OK效果中字幕由次要顏色變?yōu)橹黧w顏色) |
| OutlineColor | 邊框顏色 |
| BackColour | 陰影顏色 |
| Bold | 粗體(-1=開啟,0=關(guān)閉) |
| Italic | 斜體(-1=開啟,0=關(guān)閉) |
| Underline | 下劃線( -1=開啟,0=關(guān)閉) |
| Strikeout | 刪除線( -1=開啟,0=關(guān)閉) |
| ScaleX | 橫向縮放(單位%,100即正常寬度) |
| ScaleY | 縱向縮放(單位%,100即正常高度) |
| Spacing | 字間距(單位像素,支持小數(shù)) |
| Angle | 旋轉(zhuǎn)角度(繞z軸逆時針旋轉(zhuǎn)\frz,負(fù)數(shù)=順時針旋轉(zhuǎn)。單位度,支持小數(shù)) |
| BorderStyle | 邊框樣式(1=邊框+陰影,3=不透明底框) |
| Outline | 邊框?qū)挾龋▎挝?code>像素,可用小數(shù)) |
| Shadow | 陰影深度(單位像素,可用小數(shù),右下偏移) |
| Alignment | 對齊方式(同小鍵盤布局,決定了旋轉(zhuǎn)/定位/縮放的參考點(diǎn)) |
| MarginL | 左邊距(字幕距左邊緣的距離,單位像素,右對齊和中對齊時無效) |
| MarginR | 右邊距(字幕距右邊緣的距離,單位像素,左對齊和中對齊時無效) |
| MarginV | 垂直邊距(字幕距垂直邊緣的距離,單位像素,下對齊時表示到底部的距離;上對齊時表示到頂部的距離;中對齊時無效,文本位于垂直中心) |
| Encoding | 編碼( 0=ANSI,1=默認(rèn),128=日文,134=簡中,136=繁中,一般用默認(rèn)1即可 ) |
其中腳本支持的顏色格式是:&Haabbggrr,均為十六進(jìn)制,取值0-9,A-F。前2位(alpha)為透明度,00=不透明,F(xiàn)F=DEC255=全透明;后6是BGR藍(lán)綠紅顏色。 排在最前的00可以忽略不寫, 如:{\c&HFF&}={\c&H0000FF&}為純紅色、&HFFFFFF=純白色、&HC8000000=透明度為200的黑色。
該部分的一個典型示例是:
[Events]Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, TextDialogue: Marked=0,0:00:01.18,0:00:06.85,DefaultVCD, NTP,0000,0000,0000,,{\pos(400,570)}Like an angel with pity on nobody[Event]部分由格式行(Format:)和多個事件行組成。格式航定義了事件行中各種字段的具體含義,因此格式行必須出現(xiàn)在所有事件前。事件行包括:
Dialogue: 這是一個“對話”事件,用于顯示一些文本。Comment: 這是一個“評論”事件,它包含與對話、圖片、聲音、電影或命令事件相同的信息,但在腳本回放期間會被忽略。Picture: 這是一個“圖片”事件 ,意味著SSA將顯示指定的.bmp、.jpg、.gif、.ico或.wmf圖形(不支持.png, 且filter不支持加載圖片)。Sound: 這是一個“聲音”事件,意味著SSA將播放指定的.wav文件。 (filter不支持)Movie: 這是一個“影片”事件,意味著SSA將播放指定的.avi文件。 (filter不支持)Command: 這是一個“命令”事件,意味著SSA將執(zhí)行指定的程序作為后臺任務(wù)。 (filter不支持)注意后面三個使用頻率及兼容性過低,這里不作深入分析。
Format:Format 行必須出現(xiàn)在所有事件行之前,因?yàn)樗鼪Q定了SSA如何來解析下面的事件行。其所列出的字段必須正確拼寫。字段名如下:Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
最后的字段總是 Text,以便其可以包含逗號。格式行支持在未來的腳本格式中添加新的字段,也支持舊版本的軟件讀出它所能識別的字段,即便字段的順序發(fā)生了變化。其中各字段含義如下:
| 編號 | 字段名 | 備注 |
|---|---|---|
| 1 | Marked | Marked=0,表示在SSA中該行不顯示為已標(biāo)識。Marked=1,表示在SSA中該行顯示為已標(biāo)識。通常設(shè)置Marked為0 |
| 2 | Layer | 任何整數(shù)。有不同圖層數(shù)值的字幕會在重疊檢測中被忽略。大數(shù)值的圖層會覆蓋在小數(shù)值的圖層上面。 |
| 3 | Start | 事件的開始時間,格式為0:00:00:00(小時:分:秒:毫秒),最小單位為0.01s。它是字幕顯示在屏幕上時腳本播放經(jīng)過的時間。注意小時只有一位。 |
| 4 | End | 事件的結(jié)束時間,格式為0:00:00:00(小時:分:秒:毫秒)。它是字幕在屏幕上消失時腳本播放經(jīng)過的時間。注意小時只有一位。 |
| 5 | Style | 樣式名。如果為 Default,那么你自己的*Default樣式會取代它。然而,如果腳本作者要使用的Default樣式已存儲在腳本中卻被SSA忽略了,如果你要使用它,你可以修改樣式定義行里的名稱,以便它出現(xiàn)在腳本的樣式列表里。在實(shí)際的應(yīng)用中,若在[v4+ Styles]中定義好Default樣式,如果之后使用了未定義的樣式名,那么就使用Default樣式。如果Default樣式也沒有定義,那樣才使用渲染器自帶的樣式。 |
| 6 | Name | 角色名。說這條對白的角色名。只為了在編輯和設(shè)定時間軸時方便辨認(rèn)。 |
| 7 | MarginL | 4位的左邊距覆寫值(為像素)。0000 表示使用在Style行中定義的值。 |
| 8 | MarginR | 4位的右邊距覆寫值(為像素)。0000 表示使用在Style行中定義的值。 |
| 9 | MarginV | 4位的垂直邊距覆寫值(為像素)。0000 表示使用在Style行中定義的值。 |
| 10 | Effect | 過渡效果??梢詾榭罩?,或者為在SSA v4.x實(shí)現(xiàn)的三種過渡效果之一。效果名稱區(qū)分大小寫,必須正確拼寫,不加引號。Karaoke,表示卡拉OK效果,依次高亮每個字。作為一個效果類型已經(jīng)廢棄不用。Scroll up;y1;y2;delay[;fadeawayheight],表示文本或圖片會在屏幕上向上滾動。Scroll up之后的參數(shù)字段用分號分隔。y1和y2值(為像素)定義了文本在屏幕上滾動的垂直區(qū)域。兩個值位置可以互換。如果兩個值都是 0,文本會在整個屏幕高度向上滾動。delay值可取值1到100以降低滾動的速度,0表示無延遲按原速度滾動。當(dāng)delay值大于1時,移動1像素需要(1000/delay)秒。fadeawayheigh值可選,可以使文本滾動到其范圍的邊緣時呈現(xiàn)淡出效果。Scroll down;y1;y2;delay[;fadeawayheight],同上,為向下滾動。Banner;delay[;lefttoright;fadeawaywidth],表示所有文本都忽略長度到一行里,從右向左滾動經(jīng)過屏幕。delay值同上。lefttoright值可選,取值0或1。默認(rèn)為0,表示從右向左滾動。fadeawaywidth值同上。 |
| 11 | Text | 字幕文本。它是作為字幕實(shí)際出現(xiàn)在屏幕上的文本。任何第9個逗號之后的文本都被當(dāng)作是字幕文本,所以它可以包含逗號。文本中可以包含表示換行的\n代碼,也可以包含在大括號{}之間出現(xiàn)的樣式覆寫控制代碼。 |
其中Dialog事件按照上述格式行給出的字段順序給出對應(yīng)數(shù)字。
Comment、Picture、Sound、Movie、Command事件行僅僅把Text字段換成了對應(yīng)的參數(shù)信息。比如Comment的評論信息,Command的命令全路徑,Picture的圖片路徑等等。
上述四個部分是基本的SSA/ASS格式。那么為了實(shí)現(xiàn)各種特效,實(shí)際上是需要在Dialog的Text中嵌入各種樣式控制覆寫代碼的。下面簡單總結(jié)下:
除了\h、\n和\N,所有覆寫代碼都寫在大括號{}內(nèi)。所有覆寫代碼都以反斜杠\開頭。一個大括號{}內(nèi)可以放多個覆寫代碼。所有覆寫代碼都作用于其后的所有文字。如果要讓某個覆寫代碼只作用于選定的文字,你要在選定文字的后面加一個「取消」用的覆寫代碼,來取消前面那個覆寫代碼。某些覆寫代碼會自動作用于整行文本,目前只有Alignment代碼,之后可能會加入更多(例如,陰影和邊框深度的覆寫)。\pos和\move等也會作用于整行文本,下面的具體說明中會提到。在下面的寫法中,<>包圍的表示參數(shù),用[]包圍的表示可選,<../..>選擇一項(xiàng)。在實(shí)際代碼中并沒有類似符號。
| 覆寫代碼 | 釋義及備注 |
|---|---|
| \n | 換行。如果啟用了智能換行,\n會被忽略。寫法舉例:這是第一行\(zhòng)n這是第二行。\n只在WrapStyle:2或\q2時會換行,其他模式下都相當(dāng)于一個空格。 |
| \N | 強(qiáng)制換行。當(dāng)智能換行啟用時用來代替\n實(shí)現(xiàn)換行。任何模式下都會強(qiáng)制換行。在xy-VSFilter中,\N在過渡效果Banner中也會換行;在libass中,\N在 Banner中不換行,相當(dāng)于空格。 |
| \h | 硬空格。不換行,暨可確保在顯示字幕時不會在它的這個空格上分行(保證左右兩個詞在同一行)。 |
| \b<0/1> | \b1文本加粗,\b0取消粗體。當(dāng)該參數(shù)大于1,它會作為字體的重量值(400 = 普通,700 = 粗體,注意:大多數(shù)字體的粗細(xì)可以量化為2-3個等級)。 |
| \i<0/1> | \i1文本加斜體,\i0取消斜體。 |
| \u<0/1> | \u1給文本加下劃線,\u0取消文本下劃線。 |
| \s<0/1> | \s1給文本加刪除線,\s0取消文本刪除線。 |
| \bord<寬度>\xbord<寬度>\ybord<寬度> | 邊框?qū)挾龋瑔挝粸橄袼?,可以是小?shù)。有x或y時可以單獨(dú)設(shè)置沿X軸或Y軸的邊框?qū)挾取懛ㄅe例:\bord1、\xbord2、\ybord3。 |
| \shad<深度>\xshad<深度>\yshad<深度> | 陰影深度,單位為像素,可以是小數(shù)。有x或y時可以單獨(dú)設(shè)置沿X軸或Y軸的陰影深度。寫法舉例:\shad1、\xshad2、\yshad3。 |
| \fn<字體名> | 指定一個系統(tǒng)中已安裝的字體。區(qū)分大小寫。如果指定的字體沒有安裝,那么會使用 Arial字體。寫法舉例:\fn微軟雅黑。 |
| \fs<字體尺寸> | <字體尺寸>是一個數(shù)字,指定了字體點(diǎn)的尺寸。注意,這里的字體尺寸并不是字號的大小,\fs20并不是字體大?。╢ont-size)為 20px,而是指其行高(line-height)為20px,主要是因?yàn)閂SFilter使用的Windows GDI的字體接口。 |
| \fs+<數(shù)值>\fs-<數(shù)值> | 將當(dāng)前文本的字體尺寸乘一定的倍數(shù)。例如,\fs+2表示將當(dāng)前文本的字體尺寸乘1.2,\fs-3表示將當(dāng)前文本的字體尺寸乘0.7。計(jì)算方式為(10 ± <數(shù)值>) * 當(dāng)前字體尺寸,當(dāng)計(jì)算的結(jié)果小于等于0時結(jié)果不生效,即依然為原來的字體尺寸。 |
| \fscx<百分?jǐn)?shù)>\fscy<百分?jǐn)?shù)> | 縮放文字大小。\fscx<百分?jǐn)?shù)>為水平縮放,\fscy<百分?jǐn)?shù)>為垂直縮放。寫法舉例:\fscx233.33、\fscy50??蛇m用于矢量圖形。 |
| \fsp<像素值> | 它改變字符之間的距離,默認(rèn)為0。寫法舉例:\fsp3。 |
| \fr<度數(shù)>\frx<度數(shù)>\fry<度數(shù)>\frz<度數(shù)> | 表示沿X/Y/Z軸旋轉(zhuǎn)一定的度數(shù)。\fr<度數(shù)>表示沿Z軸旋轉(zhuǎn)。寫法舉例:\fr30、\frx-30、\fry-233.33、\frz480。其旋轉(zhuǎn)的原點(diǎn)由\org決定,如果沒有指定\org,那么按「默認(rèn)定位點(diǎn)」來旋轉(zhuǎn)。 |
| \fax<因數(shù)>\fay<因數(shù)> | 分別沿X軸和Y軸對文字行進(jìn)行傾斜調(diào)整。 如\fax-0.5等同于斜體。一般情況下因數(shù)的絕對值不要超過2。 |
| \fe<字符集> | 指定文字的字符集(字體編碼)。通常0為英文,1為系統(tǒng)默認(rèn),134為簡體中文,136為繁體中文。一般字幕文件保存為Unicode方式編碼如UTF-8時,可以忽略該設(shè)置。 |
| \[<顏色序號>]c[&][H] | <BBGGRR>是一個十六進(jìn)制的RGB值,但顏色順序相反,前導(dǎo)的0可以省略。<顏色序號>可選值為 1、2、3和 4,分別對應(yīng)單獨(dú)設(shè)置PrimaryColour、SecondaryColour、OutlineColor 和 BackColour,<顏色序號>未寫時相當(dāng)于設(shè)置 為PrimaryColour。寫法舉例:\c&HFF0000&、\1c&HFF&、\2c&HFF00&、\3c&HFFFFFF、\4cFFFFFF。其中的&和H按規(guī)范應(yīng)該是要有的,但是如果沒有也能正常解析。 |
| \[<顏色序號>]c | 當(dāng)c后面不跟其他字符時,會設(shè)置為當(dāng)前使用的Style中所定義的對應(yīng)的值。 |
| <顏色序號>a[&][H][&] | 是一個十六進(jìn)制的透明度數(shù)值,00為不透明,F(xiàn)F為全透明。<顏色序號> 含義同上,但這里不能省略。寫法舉例:\1a&H80&、\2a&H80、\3a80、\4a&H80&。其中的&和H按規(guī)范應(yīng)該是要有的,但是如果沒有也能正常解析。 |
| \alpha[&][H][&] | 是一個十六進(jìn)制的透明度數(shù)值,00為不透明,F(xiàn)F為全透明。它默認(rèn)相當(dāng)于\1a&H<AA>&。寫法舉例:\alpha80。 |
| \a<位置> | <位置>是一個數(shù)字,決定了字幕顯示在屏幕上哪個位置。1、2、3 分別是底部的居左、居中、居右;5、6、7 分別是頂部的居左、居中、居右;9、10、11 分別是中部的居左、居中、居右。如果是0或者沒有就設(shè)置為默認(rèn)位置。如果出現(xiàn)了多個\a或\an則以第一個出現(xiàn)的為準(zhǔn)。 |
| \an<位置> | 與小鍵盤布局相同。如果出現(xiàn)了多個\a或\an則以第一個出現(xiàn)的為準(zhǔn)。 |
| \q<方式> | <方式>是一個數(shù)字,與WrapStyle相同。0:智能換行,分割比較均勻,上面的行較長。1:從行尾的詞換行,只有 \N 能強(qiáng)制換行。2:不換行,\n 和 \N 強(qiáng)制換行。3:和 0 一樣智能換行,下面的行較長。 |
| \r[<樣式名>] | <樣式名> 是在[v4 Styles+]中定義的樣式名,它會把這行中所有它之后的文本設(shè)置為樣式名對應(yīng)的樣式。如果沒有寫 <樣式名> 或者 <樣式名> 沒有被定義,將會設(shè)置為默認(rèn)樣式。例如,假設(shè)已定義了把字體設(shè)為藍(lán)色的 Blue 樣式,{\1c&HFF&}這里是紅色{\rBlue}這里是藍(lán)色{\1c&HFF00&}這里是綠色。 |
\move(<x1>,<y1>,<x2>,<y2>[,<t1>,<t2>]) | 提供字幕的移動效果。 |
\pos(<x>,<y>) | 將字幕定位在坐標(biāo)點(diǎn)\a<位置>、\an<位置>和Alignment決定。例如:\an1的定位點(diǎn)在字幕的左下角。\an2的定位點(diǎn)在字幕底邊的正中間。\an3的定位點(diǎn)在字幕的右下角。\an4的定位點(diǎn)在字幕左邊線的正中間。\an5的定位點(diǎn)在字幕垂直水平的正中間。\an6的定位點(diǎn)在字幕右邊線的正中間。\an7的定位點(diǎn)在字幕的左上角。\an8的定位點(diǎn)在字幕頂邊的正中間。\an9的定位點(diǎn)在字幕的右上角。當(dāng)一行中有多個\pos和\move時,以第一個為準(zhǔn)。事實(shí)上\pos(<x>,<y>)相當(dāng)于\move(<x>,<y>,<x>,<y>,0,0)。當(dāng)一行中含有 \pos 時會忽略字幕重疊沖突的檢測。 |
\org\(<x>,<y>) | 設(shè)置字幕的原點(diǎn)為\org時,以第一個為準(zhǔn)。原點(diǎn)就是定位點(diǎn),定位點(diǎn)就是原點(diǎn)。 |
\fad(<t1>,<t2>) | 提供簡單的淡入淡出效果。t1為淡入時間長度,t2為淡出時間長度。單位為毫秒。當(dāng)一行中有多個 \fad 或 \fade 時,以第一個為準(zhǔn)。 |
\fade(<a1>,<a2>,<a3>,<t1>,<t2>,<t3>,<t4>) | 提供復(fù)雜的淡入淡出效果。單位為毫秒。在 |
\[i]clip(<x1>,<y1>,<x2>,<y2>) | 定義一個矩形,只有在該矩形范圍內(nèi)的內(nèi)容可見或不可見。\[i]clip出現(xiàn)時,以最后一個為準(zhǔn)。 |
\[i]clip([<等級>,]<繪圖命令>) | 定義一個繪畫圖形,只有在該繪畫圖形范圍內(nèi)的內(nèi)容可見或不可見。<等級> 和 <繪圖命令> 的含義與 \p 相同。 |
這里舉一個我實(shí)際中使用過的示例:需要控制字幕顯示的行間距,需要怎么做呢?假設(shè)字幕預(yù)設(shè)字體大小為16,下面文本如何控制行間距?
…很長的字幕…\N…下一行字幕…
雖然這里有\(zhòng)N換行符了,但顯示出來還是兩行緊挨在一起,沒有行距。那么參考上面的覆蓋代碼,可以通過下面命令調(diào)整行間距:
…很長的字幕…\N{\fs12}\N{\fs16}…下一行字幕…當(dāng)然最終行間距數(shù)值按照需求更改就行了。
SSA/ASS是相對復(fù)雜的字幕格式,但其也具有豐富的功能集及可擴(kuò)展性。本文簡要概述了SSA/ASS字幕文件的主要構(gòu)成及基本樣式覆蓋代碼。
更多相關(guān)知識,請?jiān)L問常見問題欄目!
以上就是ass是什么文件的格式的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
關(guān)鍵詞: 字幕文件