|
#1
| ||||
| ||||
| [精華] 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/AVIcod11.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.net/a...5.exe?download ) VSFilter.dll ( http://prdownloads.sourceforge.net/g...1.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 ,有部分的內容因個人覺得很簡單或尚未完全參透所以並沒有寫下來,有興趣深入研究的朋友可自行下載研究. 文章內的每個範例都經過個人實際測試,如果你在執行過程中發現任何問題,個人十分歡迎各位的指教. |
|
#2
| |||
| |||
| 很棒的教學 謝謝大大的指導 |
|
#3
| ||||
| ||||
| 說明相當複雜…有看沒有懂= = 需要有圖文教學才能夠了解!!
__________________ [center] 世界上沒有白吃的午餐,更沒有不勞而獲的事情 |
|
#4
| |||
| |||
| 引用:
|
|
#5
| |||
| |||
肥長的有趣... 說明相當詳細複雜又常… 但是有看沒有懂 兒 兒兒兒 |
|
#6
| |||
| |||
| 不要光說明也看不懂是什麼...希望要有圖,這樣大家馬上就懂... |
|
#7
| |||
| |||
| 一般人應該很難理解 有程式設計概念的人應該一看就懂了 |
|
#8
| |||
| |||
| 可以學到修改別人的字幕 |
|
#9
| ||||
| ||||
| 還是有圖慢慢來比較好...一堆字,,,看得很累....
__________________ ![]() 【版權所有,翻印必究】 ★2006搖滾不死-海洋人民音樂祭★2006年第七回海洋音樂祭,14.15.16 Jul 06' 每年太陽過黃經一○五度 日出五時九分 日沒十八時四十八分 福隆蔚藍海岸 盛大開演。 ┌〝2006台客搖滾嘉年華 台客拼迸叫〞┐台客歸世界 世界歸台客 04/01、04/02,台中市 國家音樂廳預定地,春假 盛大推出!! :+: Formoz Festival 2006 :+: 丙戌年 野台開唱 你我一起實現的音樂夢想 丙戌年野台開唱 Formoz Festival 覺得文章不錯的話,就幫忙按一下右邊的 吧!! |
|
#10
| |||
| |||
| 這個應該有點像java script 吧! 所以,這樣的教學,可以讓想理解的人理解,對於看不懂得,我想就只要改裡面的參數,來達到自己的目的就好囉~~ 真棒的教學~~
__________________ 回帖,是一種禮貌,更是一種鼓勵! 如果你有發過帖,我想你一定感同身受~~ 目前知道 可以播放flac格式的軟體有 foobar2000、還有winamp (需外掛plugin) |