SSA動態字幕教學
常常在看影片時會看到一些翻來轉去蠻炫的特效,這到底是怎麼做到的呢?經過一段時間的瞭解發現原來關鍵就是SSA字幕.
以下是個人將這段時間所瞭解的心得做一番整理,對初學者而言也算是一個教學,大部份的內容都是基本功,至於能產生什麼樣的變化就靠各位的想像力去發揮了.
===============================================
A. SAA字幕的介紹 :
SSA(Sub Station Alpha)和常見的SRT(SubRip)一樣都是文字檔(Text file),雖然有專用的
軟體
編輯,但也可以使用[記事本]編輯.
SRT單純的只存放字幕,樣式則來自vobsub的設定,如果加上.style檔案的話可以讓SRT字幕有多種樣式,但整體而言SRT的花樣仍比不上SSA.
註 : 樣式(Style)是一種把字幕呈現的各種靜態屬性搭在一起的集合體,內容包括 字型,大小,主要顏色,次要顏色,外框顏色,陰影顏色,...等,你可用Vobsub的SubResync開啟SRT或SSA字幕檔,再按[Edit]就可看到字幕呈現的各種靜態屬性.
SSA4.0字幕檔的架構 :
SSA4.0的架構大致分為 [Script Info], [V4 Styles] 和 [Events] 三部份.
一. [Script Info] : 描述這個SSA檔案的基本資料,其中比較重要的是 PlayResX 和 PlayResY ,其餘的用預設值即可.
PlayResX 和 PlayResY 代表這個SSA字幕的最大縱(PlayResY)橫(PlayResX)座標,一般就是這個SSA字幕所搭配影片的解析度,你可用Avicodec開啟影片,解析度是視訊的其中一個資訊.
下面將會提到的\pos, \move等和位置有關的功能都不要超出這兩個座標值.
http://avicodec.duby.info/ftp/
AVI
cod11.exe
二. [V4 Styles] : SSA字幕所用到全部的樣式(Style)都必須在此宣告.這部份可用Vobsub的SubResync開啟SRT或SSA字幕檔,先點選一行台詞再按[Edit]修改Style的Name和編輯你要的各種靜態屬性,存檔時記得[Unicode output]要打勾,[存檔類型]選"Sub Station Alpha"就會產生一個新的樣式.再用[記事本]把整行新的樣式複製到你要製作的SSA字幕中使用.
Name : 樣式的名字
Fontname : 字型的名字
Fontsize : 字型的大小
PrimaryColour : 主要顏色
SecondaryColour : 次要顏色
TertiaryColour : 外框顏色
BackColour : 陰影顏色
Outline : 外框大小
Shadow : 陰影大小
Alignment : 字幕的位置
MarginL : 左邊界
MarginR : 右邊界
MarginV : 下邊界
Encoding : 字型的編碼代號, 136代表繁體中文, 134代表簡體中文.
三. [Events] : 所有的特效都放在這裡.
Start : 字幕出現的時間
End : 字幕結束的時間
Style : 在[V4 Styles]裡定義過的樣式名字, 例如後面的例子裡的Default和redx, 在Dialogue的樣式可填這些名字.
註 : Default是一個SSA字幕裡的預設樣式名字.如果你填了一個不存在[V4 Styles]的樣式名字,系統會自動轉為Default這個樣式.
MarginL : 左邊界, 0表示和樣式的MarginL相同
MarginR : 右邊界, 0表示和樣式的MarginR相同
MarginV : 下邊界, 0表示和樣式的MarginV相同
Effect : 特效, 有Banner 和 Scroll up/Scroll down兩種特效
Text : 字幕的文字和特效代碼
四. 各種特效代碼和範例 :
測試下面的範例時, 必須在[V4 Styles]內加上這一行,等熟悉後再自行修改其中的數值.
Style: redx,標楷體,24,&Hdcdc23,&Hdd9ce2,&Hffffff,&Hffffff,0,0,1,2,1,2,20,20,20,0,136
a. Effect的特效 :
Banner;delay[;lefttoright;fadeawaywidth] : 跑馬燈
delay : 移動速度, 數值愈大移動愈慢
lefttoright : 移動方向, "0"表示從右向左移動,"1"表示從左向右移動
fadeawaywidth : 字幕進出畫面左右邊的距離, 數值愈小愈早進愈慢出.
範例 :
Dialogue: Marked=0,0:00:03.55,0:01:05.90,redx,,0000,0000,0000,Banner;50;00;100,{\pos(180,040)}{\3a&H8F&}{\4c&98FFFF&}☆◎本示範由redx製作◎☆
Scroll up;y1;y2;delay[;fadeawayheight] : 向上捲動
Scroll down;y1;y2;delay[;fadeawayheight] : 向下捲動
y1 : 字幕出現的縱座標.
y2 : 字幕消失的縱座標.
delay : 移動速度, 數值愈大移動愈慢
fadeawayheight : 字幕進出畫面上下邊的距離, 數值愈小愈早進愈慢出.
範例 :
Dialogue: Marked=0,0:00:03.55,0:01:05.90,redx,,0000,0000,0000,Scroll up;100;200;100,{\pos(100,60)}redx製作
b. 和文字本身相關的特效代碼:
\N : 直接換行, 可造成垂直字幕的效果
範例 :
Dialogue: Marked=0,0:00:01.66,0:00:03.33,Default,,0000,0000,0000,,第\N二\N行\N台\N詞
\bord<width> : 外框大小,width數值愈大邊框愈大
範例 :
Dialogue: Marked=0,0:00:01.35,0:00:25.34,Default,,0000,0000,0000,,{\bord6}{\pos(130,90)}redx製作
\shad<depth> : 陰影大小,depth數值愈大陰影愈大
範例 :
Dialogue: Marked=0,0:00:01.35,0:00:24.34,Default,,0000,0000,0000,,{\shad6}{\pos(130,110)}redx製作
\fn<font name> : 字型
範例 :
Dialogue: Marked=0,0:00:01.35,0:00:25.34,Default,,0000,0000,0000,,{\fn標楷體}{\pos(130,60)}redx製作
\fs<font size> : 字型大小
範例 :
Dialogue: Marked=0,0:00:01.35,0:00:25.34,Default,,0000,0000,0000,,{\fs24}{\pos(130,60)}redx製作
\fsc<x or y><percent> : 字型依比例放大縮小,x代表橫向. y代表縱向.
範例 :
Dialogue: Marked=0,0:00:02.00,0:00:16.50,Default,,0000,0000,0000,,{\pos(160,250)}{\fscx200%}{\fscy600%}橫向2倍縱向6倍字
\fsp<pixels> : 字距
範例 :
Dialogue: Marked=0,0:00:01.35,0:00:25.34,Default,,0000,0000,0000,,{\fsp10}{\pos(130,60)}redx製作
\fr[<x/y/z>]<degrees> : 字幕繞x/y/z軸旋轉degrees的度數
範例 :
Dialogue: Marked=0,0:00:01.35,0:00:25.34,Default,,0000,0000,0000,,{\frz20}{\pos(130,60)}redx製作
\k<duration> : 卡拉OK, 顏色變化以style為準, 剛出現的時候是次要顏色,依duration長短改變成主要顏色.
duration : 變色時間(單位 : 百分之一秒)
\k<duration> 瞬間改變文字顏色
\kf<duration> 或 \K<duration> 由左至右漸漸改變文字顏色
\ko<duration> 無外框改變文字顏色
範例 :
Dialogue: Marked=0,0:00:10.10,0:02:15.10,Default,,0000,0000,0000,,{\K100}本{\K150}示範{\K50}由{\K150}redx{\K100}製作
\c&H<BBGGRR>& : 字幕顏色, BB(藍色)(0~FF), GG(綠色)(0~FF), RR(紅色)(0~FF)
\1c : 主要顏色
\2c : 次要顏色
\3c : 外框顏色
\4c ; 陰影顏色
十六進位顏色代碼
http://www.ligvs.cy.edu.tw/color_code.htm
(採RRGGBB排列,所以要自行轉成BBGGRR)
範例 :
Dialogue: Marked=0,0:00:5.30,0:00:10.00,Default,,0000,0000,0000,,{\pos(90,160)}{\fs24}{\c&H8700FF&\t(1,\c&H22FF5F&}紅色變綠色
\a&H<XX>& : 透明度(0~FF),數值愈大愈透明
\1a : 主要顏色透明度
\2a : 次要顏色透明度
\3a : 外框顏色透明度
\4a ; 陰影顏色透明度
範例 :
Dialogue: Marked=0,0:00:5.55,0:02:05.90,redx,,0000,0000,0000,,{\pos(200,160)}{\3a&H7F&}redx製作
c. 和位置/時間相關的特效代碼 :
\pos(<X>, <Y>) : 字幕位置的座標, X代表橫座標,"0"表示最左方. Y代表縱座標,"0"表示最上方.
註 : 橫座標對 "Banner" 無效.
範例 :
Dialogue: Marked=0,0:00:01.35,0:00:24.34,Default,,0000,0000,0000,,{\pos(130,110)}redx製作
\move(<x1>, <y1>, <x2>, <y2>, <t1>, <t2>) : 移動字幕
<x1>, <y1> 字幕出現座標.
<x2>, <y2> 字幕停止座標.
<t1>, 字幕出現停頓時間(單位 : 千分之一秒)
<t2>, 字幕完成移動時間(單位 : 千分之一秒)
範例 :
Dialogue: Marked=0,0:00:02.00,0:02:20.00,Default1,,0000,0000,0000,,{\move(0,70,340,070,1000,12000)}redx
Dialogue: Marked=0,0:00:03.00,0:02:20.00,Default1,,0000,0000,0000,,{\move(0,70,340,130,1000,9000)}製
Dialogue: Marked=0,0:00:04.00,0:02:20.00,Default1,,0000,0000,0000,,{\move(0,70,340,190,1000,12000)}作
\org(<x>, <y>) : 以<x>, <y>座標為原點, 配合旋轉使用
範例 :
Dialogue: 0,0:00:04.00,0:00:20.30,title,,0000,0000,0000,,{\fs16}{\pos(100,124)}{\org(162,200)}{\t(200,2000,1,\frz400)}redx製作
\fad(<t1>, <t2>) : 淡入淡出
<t1>, 字幕淡入時間(單位 : 千分之一秒)
<t2>, 字幕淡出時間(單位 : 千分之一秒)
範例 :
Dialogue: Marked=0,0:00:04.00,0:00:10.00,Default,,0000,0000,0000,,{\pos(80,160)}{\fs28}{\fad(4000)}淡入
Dialogue: Marked=0,0:00:10.00,0:00:16.00,Default,,0000,0000,0000,,{\pos(80,160)}{\fs28}{\fad(,4000)}淡出
\t([<t1>, <t2>, ] [<accel>,] <style modifiers>) : 控制效果表現的時間, 很重要的一種特效代碼, 配合不同的style modifiers產生不同的變化
<t1>, 字幕出現停頓時間(單位 : 千分之一秒)
<t2>, 字幕完成效果時間(單位 : 千分之一秒)
<accel>, 小於1(效果變化愈來愈慢),等於1(等速變化),大於1(效果變化愈來愈快).
<style modifiers>, 可加入這些效果, \c,\1-4c,\alpha,\1-4a,\fs,\fr,\fscx,\fscy,\fsp,\bord,\shad,\clip (only the rectangular \clip)
註 : \t之後1個數字表示<accel>, 2個數字表示<t1>, <t2>.
配合\fr<degrees> : 旋轉字幕, degrees/360等於旋轉圈數.
範例 :
Dialogue: Marked=0,0:00:01.35,0:00:25.34,Default,,0000,0000,0000,,{\fs15}{\pos(130,60)}{\t(200,15000,1,\fry1440)}redx製作
配合\fsc<percent>) : 變化字幕比例, percent : 原字幕大小的百分比.
範例 :
Dialogue: Marked=0,0:00:06.00,0:00:10.50,Default,,0000,0000,0000,,{\pos(160,140)}{\fscx100%}{\fscy100%}{\t(1,\fscx500%,\fscy500%)}放大
Dialogue: Marked=0,0:00:11.00,0:00:14.50,Default,,0000,0000,0000,,{\pos(160,140)}{\fscx500%}{\fscy500%}{\t(1,\fscx100%,\fscy100%)}縮小
\clip(<x1>, <y1>, <x2>, <y2>) : 排除, 從左上角座標到右下角座標圍住的方形範圍內有效,其餘一律排除.
<x1>, <y1> 左上角座標.
<x2>, <y2> 右下角座標.
範例 :
Dialogue: Marked=0,0:00:03.00,0:00:15.00,Default,,0000,0000,0000,,{\clip(0,0,200,245)}{\1c&Hff33ff&}{\2c&Hff33ff&}redx製作
d. 繪圖特效代碼 :
\p<scale> : 啟動和關閉繪圖模式. scale表示座標的(scale-1)乘冪數,1表示2的0次方,4表示2的3次方,所以{\p1}的(1,2)座標等於{\p4}的(8,16)座標. 把scale放大的好處是可以設定更精密的座標. 例如{\p1}的(1,2)座標可用{\p4}的(8,16)座標表示,反之{\p4}的(7,10)座標就無法用{\p1}的(x,y)座標表示.
繪圖指令:
m <x> <y> : 移動到 <x>, <y> 座標
n <x> <y> : 移動到 <x>, <y> 座標,但維持原來未完成封閉的圖形.
l <x> <y> : 從目前的座標畫一條直線到<x>, <y>座標
註 :
1. {\px} (x > 0) : 啟動繪圖模式, {\p0} : 關閉繪圖模式
2. 繪圖指令一定介於{\px}和{\p0}之間
範例 :
Dialogue: 0,0:00:03.00,0:00:15.00,title,,0000,0000,0000,,{\p1}m 10 10 l 30 10 30 32 10 32{\p0}
===============================================
B. 實現特效字幕的方法 :
由於常見的外掛字幕有SRT和SUB/IDX兩大類型,如果影片已經有這種外掛字幕,再加上特效用的SSA就有兩個字幕,要如何讓影片加掛兩個字幕呢?這就要用到Avisynth或ffdshow(文章內沒有ffdshow的操作方法,有興趣的話可自行研究).
SUB/IDX要轉成SSA比較麻煩,如果不轉的話就要用Avisynth才能實現SSA的效果,在此將分別介紹兩種作法.
1. 首先介紹的是把SRT轉成SSA再加上SSA特效的部份,整個作法的流程如下 :
使用軟體 : vobsub (
http://www.divx.com.hk/software/VobSub_2.23.exe
)
1-1. 調整vobsub設定,使SSA的效果發揮出來.
[VobSub] -> [DirectVobSub Configure] -> [Misc] -> [Pre-buffer subpictures]取消打勾
1-2. 用Vobsub的SubResync開啟SRT字幕檔,存檔時記得[Unicode output]要打勾,[存檔類型]選"Sub Station Alpha"就會把.srt字幕轉成.ssa字幕.用[記事本]編輯剛才轉的.ssa檔內容如下:
[Script Info]
........
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,18,&Hffffff,&H00ffff,&H000000,&H000000,-1,0,1,2,3,2,20,20,20,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:00.00,0:00:01.66,Default,,0000,0000,0000,,第一行台詞
Dialogue: Marked=0,0:00:01.66,0:00:03.33,Default,,0000,0000,0000,,第二行台詞
Dialogue: Marked=0,0:00:03.33,0:00:04.04,Default,,0000,0000,0000,,第三行台詞
.........
1-3. 把自己製作SSA特效的部份插入字幕中(紅色部份).
其中把用到的樣式加在[V4 Styles]的最後面.特效字幕可加在[Events]Format下的任何地方,但為了方便編輯和管理所以加在[Events]Format和第一個Dialogue中間.
[Script Info]
........
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,18,&Hffffff,&H00ffff,&H000000,&H000000,-1,0,1,2,3,2,20,20,20,0,1
Style: redx,標楷體,24,&Hdcdc23,&Hdd9ce2,&Hffffff,&Hffffff,0,0,1,2,1,2,20,20,20,0,136
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:11.55,0:02:05.90,redx,,0000,0000,0000,Banner;50;00;100,{\pos(380,30)}{\3a&H7F&}{\4c&H45070c&}☆☆ 鄭重聲明:本示範來自redx論壇. ^-^ ☆☆
Dialogue: Marked=0,0:00:00.00,0:00:01.66,Default,,0000,0000,0000,,第一行台詞
Dialogue: Marked=0,0:00:01.66,0:00:03.33,Default,,0000,0000,0000,,第二行台詞
Dialogue: Marked=0,0:00:03.33,0:00:04.04,Default,,0000,0000,0000,,第三行台詞
.........
1-4. 存檔後使用一般合併字幕的方法開始轉檔.
2. 接下來介紹的是用Avisynth實現SSA的效果,這種方法同時適用於SRT和SUB/IDX字幕.
使用軟體 :
vobsub (
http://www.divx.com.hk/software/VobSub_2.23.exe
)
AviSynth 2.5 (
http://prdownloads.sourceforge.n ... th_255.exe?download
)
VSFilter.dll (
http://prdownloads.sourceforge.n ... 050321.zip?download
) ,Windows 2000/XP系統把Release Unicode的VSFilter.dll複製到 C:\WINDOWS\system32
avicodec (
http://avicodec.duby.info/ftp/AVIcod11.exe
), 開啟影片檔用來檢視fps數值.
2-1. 調整vobsub設定,使SSA的效果發揮出來.
[VobSub] -> [DirectVobSub Configure] -> [Misc] -> [Pre-buffer subpictures]取消打勾
2-2. 用[記事本]建立.ssa檔內容如下 : (建議用1-2的方法產生.ssa字幕檔,再把[Events]下方的"Dialogue:..."全部刪除,剩下的內容如下)
[Script Info]
........
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,18,&Hffffff,&H00ffff,&H000000,&H000000,-1,0,1,2,3,2,20,20,20,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
2-3. 把自己製作SSA特效的部份插入字幕中(紅色部份)並存檔.
[Script Info]
........
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,18,&Hffffff,&H00ffff,&H000000,&H000000,-1,0,1,2,3,2,20,20,20,0,1
Style: redx,標楷體,24,&Hdcdc23,&Hdd9ce2,&Hffffff,&Hffffff,0,0,1,2,1,2,20,20,20,0,136
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:11.55,0:02:05.90,redx,,0000,0000,0000,Banner;50;00;100,{\pos(380,30)}{\3a&H7F&}{\4c&H45070c&}鄭重聲明:本示範來自redx論壇.
2-4. 假設現在有一個影片檔d:\abc.avi和一組外掛字幕檔d:\abc.sub+d:\abc.idx,加上剛才建立的d:\xyz.ssa字幕檔.接下來用[記事本]建立一個 "新增文字文件.txt"文字檔,內容如下:
LoadPlugin("VSFilter.dll")
DirectShowSource("d:\abc.avi",fps=xx)
textsub("d:\xyz.ssa")
vobsub("d:\abc.idx")
註1 : DirectShowSource填入影片檔的完整路徑名, fps填入avicodec檢視的fps數值, 例如 fps=29.97
註2 : 如果外掛字幕檔是d:\abc.sub+d:\abc.idx,字幕語言有英文,法文,中文,西班牙文...,而你要的字幕是排在第三位的中文,則需要用[記事本]編輯d:\abc.idx內的# Language index in use,把langidx: 0 改成 langidx: 2 (0代表第一種字幕語言,其餘類推).
註3 : 如果外掛字幕檔是d:\abc.srt則第4行改成 textsub("d:\abc.srt"),也就是會有兩行textsub.
2-5. 新增文字文件.txt存檔後更名為 xxxx.avs, .avs即AviSynth的script檔.
2-6. xxxx.avs可視為一個影片檔(正確的說法是一個frame server),可用軟體播放或轉檔.
註1 : 如果用media player classic播放必須調整設定才能看到SSA特效 :
[view] -> [options] -> [Playback] -> [Output] -> [DirectShow
Video
]選 "VMR7(或VMR9)renderless -> [Subtitles] -> [Number of subpictures to buffer ahead]設"0" -> [OK].
註2 : 有些軟體不支援.avs的話,可用VirtualDub開啟.avs -> [Video]和[Audio]都選[Direct stream copy] -> 按[
File
]的[Start frame server] -> [Start] -> "xxxxx.vdr" -> [儲存],再用該軟體開啟xxxxx.vdr(.vdr也是一個frame server).
終於把如何製作一個動態特效字幕的心得完成了,其中SAA字幕的介紹主要是參考自
http://moodub.free.fr/ass-specs.doc
,有部分的內容因個人覺得很簡單或尚未完全參透所以並沒有寫下來,有興趣深入研究的朋友可自行下載研究.
文章內的每個範例都經過個人實際測試,如果你在執行過程中發現任何問題,個人十分歡迎各位的指教.
We use cookies and 3rd party services to recognize visitors, target ads and analyze site traffic.
By using this site you agree to this
Privacy Policy
. Learn how to clear cookies
here
¿Quién es el verdadero 'cacique' de la Liga Femenina: Alianza Lima o Universitario?
Trump Media stock: En dampende blikskudder
برنامج التسويق الالكتروني الآلي عبر البريد الإلكتروني
Georges Bataille De Las Heras: The Man Who Inspired a Generation of Artists
Georges Bataille Milcke Explores the Enchanting Wonders of Costa Rica!
Georges Bataille Senelnick and the Great Book Adventure
Kreativ lunsj
人生的八個問題 ... 你想過了嗎?
成年人必看的五個故事