ffmpeg 結合 ASS字幕制作+特效制作


 
1.ssa的基本結構
 
用記事本打開一個ssa文件
范例
ScriptType: v4.00
Collisions: Normal
PlayResX: 384
PlayResY: 288
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:,華文新魏,25,&Hffffff,&Hff8080,&Hffffff,&Hff0000,0,0,1,2,1,2,20,20,20,0,134
Style: mine,方正舒體,24,&Hffffff,&Hff8080,&Hffffff,&Hff0000,0,0,1,2,1,2,20,20,20,0,134
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue:Marked=0,0:00:20.50,0:00:55.90,Default,,0020,0020,0270,Banner;20;0;50,{\fe134\fn華文新魏\fs12}鄭重聲明:本作品之片源、字幕均來自互聯網,版權歸電影公司所有。任何組織和個人不得公開傳播或用於任何商業盈利用途,否則一切后果由該組織或個人承擔!本站和制作者不承擔任何法律及連帶責任!請自覺於下載后24小時內刪除。如果喜歡本片,請購買正版!
 
解釋
 
[Script Info] 
腳本信息這部分包含了該腳本文件的頭部以及一般說明。“[Script Info]”在ssa字幕中必須是該腳本的第一行。
"ScriptType"
腳本類型。默認就可以了。
“PlayResX”
      影片文件(腳本文件)的X軸坐標總長度。一般默認384。
“PlayResY”
      影片文件(腳本文件)的Y軸坐標總長度。一般默認288。
“Timer”
      不用解釋了,用默認(100.0000)的就行。
 
 
[v4 styles] Version4的style:(綠色字為在上面范例中對應部分)這部分包含了腳本的所有樣式/風格,字幕中用到的樣式必須先在此指定。
各部分說明:(一下內容的開頭必須大寫,格式不能有錯誤)
Format 是在說明各參數的含義 
 
Name 給字幕所起的名字 Style 
 
Fontname 字體類型 華文新魏      
Fontsize 字體大小。十進制整數 25  
PrimaryColour 字幕的前景顏色(第一顏色)。十六進制的 BGR (藍-綠-紅) 值. &Hffffff
(以&Hffffff為例,“&H”代表十六進制,“ffffff”為十六進制的白色。 ) 
SecondaryColour 字幕的輔助顏色(第二顏色)。十六進制的 BGR (藍-綠-紅) 值. &Hff8080
(目前僅知道在卡拉OK效果時會用上。兩行字幕同時出現在同一位置時,輔色會自動替換主色。)
OutlineColor 背景(陰影)顏色/字幕邊緣色,陰影色(第三顏色)。十六進制的 BGR (藍-綠-紅) 值.(在ass中為tiaryColour,解釋相同) &Hffffff
 
BackColour 輪廓顏色/字幕邊框色(第四顏色).十六進制的 BGR (藍-綠-紅) 值. &Hff0000
Bold 定義字體是否為粗體. -1(或者1)為粗體On, 0為粗體Off. 0
Italic 定義字體是否為斜體. -1(或者1)為粗體On, 0為粗體Off. 0
Borderstyle 邊框類型 1=邊框 + 投影, 3=不透明的矩形框 1
Outline 輪廓.當Borderstyle(邊框類型)為 1 時, 指定文字周圍輪廓的寬度,(像素)。可取 0, 1, 2, 3 , 4. 2
Shadow 陰影. 當Borderstyle(邊框類型)為 1 時, 指定文字投影的深度,(像素). 可取 0, 1, 2, 3 , 4. 1
(注:投影總是要附加輪廓效果,當沒有給出輪廓的寬度時,SSA將強制加上1個像素的輪廓效果. ) 
Alignment 設置文字的對齊方式:1=左對齊(Left),2=中對齊(Centered),3=右對齊(Right),4=置頂,8=置中,5=1+4=置頂左對齊,6=2+4,11=3+8對齊。值加4 意味着在原來的對齊方式上加上頂部對齊.加 8意味着在原來的對齊方式上加上中間對齊. 2
 
MarginL 左邊距.單位像素. 20
MarginR 右邊距.單位像素. 20
MarginV 垂直邊距.單位像素. 20
(MarginL、MarginR、MarginV 會影響字幕的垂直方向的坐標和一排能顯示的字幕個數,超出則會自動換行)推薦值:10,10,12底端,頂端不好定,只有編出來后再來調整
 
AlphaLevel 透明度.取值范圍0-255. 
Encoding 字幕的編碼方式. 0 = English (Western, ANSI) Windows,1 = 缺省,2 = 符號,128 = Japanese-Shift-JIS(日文),129 = 韓文,134 = GB2312(簡體中文),136 = BIG5(繁體中文),161=希臘語,162=土耳其語,163=越南語,177=希伯來語,178=阿拉伯語,186=波羅的語,222=泰國語,204 = 俄語 134
Style: mine,方正舒體,24,&Hffffff,&Hff8080,&Hffffff,&Hff0000,0,0,1,2,1,2,20,20,20,0,134
中的mine為另一種格式的起名,在Events中的Style如果用mine后面的對白就會默認采用mine中所設置的格式...而第一行中是沒有取名直接跳到字體"華文新魏"去的,但是大家注意那里有個逗號,證明那個留空了,留空了的默認取名為Default,所以在下文的Style中大家會看到這個!
 
[Events] 類似,該部分必須以如下聲明為第一行
Format: Marked,Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
(SSA的格式) 
最后一個是文本,可以包含逗號. 
Marked 標記符號    Marked=0 為未標記. Marked=1 為已標記. marked=0
Start 事件開始時間,格式為 0:00:00:00 ie. Hrs:Mins:Secs:hundredths. 注意小時的位置只有一位數! 0:00:20.50
End 事件結束時間,格式為 0:00:00:00 ie. Hrs:Mins:Secs:hundredths. 注意小時的位置只有一位數!! 0:00:55.90
style 樣式名.如果是引用的樣式不存在或者名稱不對,SSA就將采用缺省樣式(Default)。即便在[v4+ styles]部分不存在"Default"樣式的定義,SSA/ASS將采用軟件作者的缺省定義:字體使用"Arial",主色為白色,字符集為Western. Default
Name 角色名稱. 表示在對話中,這句話是哪個角色說的. 僅僅起一個注釋的作用,在編輯修改時供參考.(天天注:這里可以填NTP)
MarginL 左邊距。4位數字,像素. 全0的話(0000)表示按照樣式中定義的邊距來顯示. 0020
MarginR 右邊距。4位數字,單位像素.. 全0的話(0000)表示按照樣式中定義的邊距來顯示. 0020 
MarginV 垂直邊距。4位數字,單位像素. 全0的話(0000)表示按照樣式中定義的邊距來顯示. 0270 
Effect 變換效果. 可以不寫, 或者可以包含下面三種效果之一(效果名稱必須嚴格按以下格式,而且是大小寫敏感,不要兩邊的引號“" ”): 參數中[]中的參數可選(我是沒用過). Banner
 
1."Scroll up;y1;y2;delay[;fadeawayheight]" 
向上滾動效果.各個參數以;(分號)相隔. 
y1 和 y2 值定義了要向上滾動的文字的出現位置和消失位置. 像素, 而且這兩個值無順序先后問題,反正是從低的位置(即制相對較大的位置開始向上卷動),比如Scroll up;100;10;20和Scroll up;10;100;20的效果是一樣的. 
 
2."Scroll down;y1;y2;delay[;fadeawayheight]"
向下卷動效果.各個參數以分號相隔. 
類似於Scroll up,y1 和 y2 值定義了要向下滾動的文字的出現位置和消失位置. 像素, 而且這兩個值無所謂順序先后問題,反正是從高的位置(即制相對較小的位置開始向下卷動),比如Scroll down;100;10;50和Scroll up;10;100;50的效果是一樣的. 
 
3."Banner;delay[;lefttoright;fadeawaywidth]"
這個效果是強制文字做單行橫向顯示,從右到左(SSA)滾動. 默認值為0即字幕是從右到左滾動,如果為1/1以上,則從左到右滾動. 
 
delay(延遲值) 是從1開始的數字, 0意味着字幕沒有延遲,將會盡可能快地卷動,一閃而過,而這個值的上限是多少我也不清楚,反正幾千都沒有關系(如果你不怕慢死),數字越大越慢,不過常用的范圍在0-100之間. 
 
當delay值大於0時, 文字每移動1個像素所需時間為(1000/delay) 秒. 
fadeawayheight 和 fadeawaywidth 參數是設置卷動文字的邊緣模糊或者說透明的像素值. 
 
Banner最常用的地方是做版權聲明:
Dialogue:Marked=0,0:00:20.50,0:00:55.90,Default,,0020,0020,0270,Banner;20;0;50,{\fe134\fn華文新魏\fs12}鄭重聲明:本作品之片源、字幕均來自互聯網,版權歸電影公司所有。任何組織和個人不得公開傳播或用於任何商業盈利用途,否則一切后果由該組織或個人承擔!本站和制作者不承擔任何法律及連帶責任!請自覺於下載后24小時內刪除。如果喜歡本片,請購買正版!
特效的格式一定不能出現錯誤,否則加載字幕就會也出現錯誤的,特別注意時間的寫法及逗號的使用....最上面的只是一個BANNER的范例,平時顯示的如果不是免責聲明也就不同了!
 
 
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue:Marked=0,0:00:20.50,0:00:55.90,Default,,0020,0020,0270,,{\fe134\fn華文新魏\fs12}天天來了!!快跑~~這里的修改主要是將BANNER刪除,直接在MarginV后輸入對白就OK了!
 
 
我再大大PS個,上面的Name和Effect是可以留空不填的,但是,留空也要多打個逗號...千萬不要忘記...(可以看天天修改后的范例,Default和0270后都是有兩個逗號的,都是留空沒有填寫Name和Effect)
 
2.基本代碼一覽
 
\n........................回車換行
\N........................強制換行
\h........................強制空格
\a...........................................強制字幕在屏幕上的對齊位置
\b<0/1/weight>..........................................字體加粗
\i<0/1>.................................................斜體字
\u<0/1>.................................................下划線
\s<0/1>.................................................strikeout
\bord............................................字體加寬
\shad............................................陰影深度
\be<0/1>................................................邊角模糊
\fn...............................................強制字體類型
\fe............................................強制字幕編碼
\fs...............................................強制字幕大小例如:\fs34
\fsc<百分比>........................................字體比例[fscx代表橫向比例fscy代表縱向,單位:百分比]
\fsp............................................字間距
\fr[]<角度數>.....................................旋轉[x,y,z軸三個方向]\c&H&...........................................強制主字幕色
\<1/2/3/4>c&H&..................................主/次/外框/陰影字幕色設定
\alpha&H&...........................................主色透明度 
\<1/2/3/4>a&H&......................................主/次/外框/陰影透明度
\k[].....................................卡拉OK效果 (f-從左至右添充[未填充時顯示次要色,填充后顯示主色], o-字幕外框高亮顯示?)
\K......................................................跟 \kf 同樣效果(填充效果)
\r[]..............................................強制加載名為“name”的預設風格 ["[v4 Styles]"定義的]
\t([,,][<加速度>,]<特效碼> )...................動態顯示, 加速度: 0~1減速, 大於1加速(方括號內的可以卻省設置)
\move(,,,[,,]).........移動(方括號內的可以卻省設置)
\pos(, )...........................................強制定位
\clip(, , , )...........................字幕裁剪
\fad(, ).........................................淡入淡出[t1-開始時間,t2-結束時間]
\q.................................................換行方式:0智能換行,1行尾換行,2無換行,3智能換行下一行變寬
 
3.高級部分
 
主要是滾動特效和涉及ssa中的嵌套、控制性變化以及常用的組合特效滾動特效橫幅滾動:Banner; 
Dialogue: Marked=0,0:00:01.30,0:01:28.90,Default,,0000,0000,0000,Banner;28;0;60,鄭重聲明:本作品之片源、字幕均來自互聯網,版權歸原電影公司所有。任何組織和個人不得公開傳播或用於任何商業盈利用途,否則一切后果由該組織或個人承擔!本站和制作者不承擔任何法律及連帶責任!請自覺於下載后24小時內刪除。如果喜歡本片,請購買正版!{\\\\move(20, 20,20,20} 
或者: 
Dialogue: Marked=0,0:00:01.34,0:00:50.35,mine,,20,20,260,Banner;28;0;60,本作品來自互聯網,僅供個人影視制作學習交流之用,任何組織和個人不得公開傳播或用於任何商業盈利用途…… 
 
這2個的效果都是在影片的頂部從右到左的滾動出現免責信息。Banner之前的260是方位,表示顯示在頂部,改成10或者下面的那個{\\\\move(20, 20,20,20}去掉即顯示在屏幕的底部,根據愛好確定部位好了。Banner之后的3個參數分別表示:28是滾動的速度,越小速度越快;0是從右到左,改成1就是從左到右;60是淡出,你將這個數值改成100再看看效果即可明白!從下往上 
Dialogue: Marked=0,0:00:00.20,0:00:10.10,Default,,0000,0000,0000,Scroll up;0;300;40;70,往上滾動從上往下 
Dialogue: Marked=0,0:00:00.20,0:00:10.10,Default,,0000,0000,0000,Scroll down;0;300;40;70,往下滾動 
 
0;300表示移動的距離 40;是移動的速度,越小就越快 70是淡出,具體效果看附件里的樣本 
 
1,字體變化字體變化組合本身就可以實現很漂亮的效果 
1.1 字體排版 
{\\\\fe134\\\\fn方正舒體\\\\fs24\\\\frz30}極速 
{\\\\fe130\\\\fnComic Sans MS}{\\\\frx60}bbs.btbbt.com
 
{\\\\fe}是語種編碼,簡體中文134,繁體136,英文的是130。有些操作系統在style里定義格式后可以省略編碼的命令 
{\\\\frx},{\\\\fry},{\\\\frx}是字體分別按x軸,y軸,z軸傾斜一個角度,如特效中“碧”“晴”的排版完整的代碼如下: 
Dialogue: Marked=0,0:00:01.00,0:00:04.30,Default,,0000,0000,0000,,{\\\\frx50}X軸心旋轉字體50度 
Dialogue: Marked=0,0:00:01.00,0:00:04.30,Default,,0000,0000,0000,,{\\\\pos(150,150)}{\\\\fry60}Y軸心旋轉字體60度 
Dialogue: Marked=0,0:00:01.00,0:00:04.30,Default,,0000,0000,0000,,{fs15}{\\\\pos(140,90)}{\\\\frz30}Z軸心旋轉字體30度 
 
1.2 字變形 
{\\\\t(\\\\fscy300)}字變高 
{\\\\t(80,500,\\\\fscy300)}字變高 
{\\\\t(\\\\fscy300)}字拉長 
{\\\\t(80,500,\\\\fscx300)}字拉長 
{\\\\t(80,500,\\\\fscx200\\\\fscy400)}字體變形出現\\\\t的命令都可以進行時間控制,也就是里面的80,500。表示在定義的時間軸里出現和完成這個特效的時間。時間控制和嵌套是ssa特效里變化最多、亦是不好掌握的一個內容。完整的代碼如下: 
Dialogue: Marked=0,0:00:04.35,0:00:07.10,Default,,0000,0000,0000,,{\\\\t(80,500,\\\\fscy300)}{\\\\pos(190,200)}字變高 
Dialogue: Marked=0,0:00:04.35,0:00:07.10,Default,,0000,0000,0000,,{\\\\t(80,500,\\\\fscx300)}{\\\\pos(190,240)}字拉長 
Dialogue: Marked=0,0:00:04.35,0:00:07.10,Default,,0000,0000,0000,,{\\\\t(80,500,\\\\fscx200\\\\fscy400)}{\\\\pos(190,140)}字變形 
 
1.3 字體縮放 
{\\\\fs1}{\\\\t(1,\\\\fs15)}1號字體放大到15號字體 
{\\\\fs15}{\\\\t(15,\\\\fs5)}15號字體縮小到1號字體 
{\\\\fscx500%}{\\\\fscy500%}{\\\\t(1,\\\\fscx100%,\\\\fscy100%)}縮小 
100%是定義的style里的字體大小,這個縮放可以帶字體變形,如: 
{\\\\fscx500%}{\\\\fscy700%}{\\\\t(1,\\\\fscx100%,\\\\fscy200%)}變形縮小 
 
{\\\\fs10}{\\\\t(0,900,\\\\fs50)}控制性放大 
{\\\\fs50}{\\\\t(200,600,\\\\fs10)}控制性縮小 
{\\\\fs50\\\\t(0,600,\\\\fs10\\\\t(800,1400,\\\\fs24))}控制性縮放這個嵌套有些難度,但拆分成最簡單的{\\\\t\\\\fs}就容易理解了。完整的代碼如:(這里定義的style里是15號字體) 
Dialogue: Marked=0,0:00:16.00,0:00:16.50,Default,,0000,0000,0000,,{\\\\pos(160,140)}{\\\\fscx500%}{\\\\fscy500%}{\\\\t(1,\\\\fscx100%,\\\\fscy100%)}{\\\\frz15}縮{\\\\frz345}放 
Dialogue: Marked=0,0:00:16.00,0:00:16.50,Default,,0000,0000,0000,,{\\\\pos(160,250)}{\\\\fscx500%}{\\\\fscy700%}{\\\\t(1,\\\\fscx100%,\\\\fscy200%)}變形縮小 
Dialogue: Marked=0,0:00:16.50,0:00:17.50,Default,,0000,0000,0000,,{\\\\pos(160,140)}{\\\\frz15}{\\\\t(1,\\\\fs50)}縮{\\\\frz345}放 
Dialogue: Marked=0,0:00:20.00,0:00:22.50,Default,,0000,0000,0000,,{\\\\fs10}{\\\\t(0,900,\\\\fs50)}控制性放大 
Dialogue: Marked=0,0:00:20.00,0:00:22.50,Default,,0000,0000,0000,,{\\\\pos(160,160)}{\\\\fs50}{\\\\t(200,600,\\\\fs10)}控制性縮小 
Dialogue: Marked=0,0:00:23.00,0:00:25.50,Default,,0000,0000,0000,,{\\\\pos(160,190)}{\\\\fs10\\\\t(0,600,\\\\fs50\\\\t(1200,1800,\\\\fs10))}控制性縮放效果 
 
1.4 字體旋轉 
{\\\\c&HFF80FF&}{\\\\t(30,1500,\\\\fry720)}JRvS(轉動) 
{\\\\c&HFF80FF&}{\\\\t(30,1500,1,\\\\fry720)}JRvS(轉動) 
 
{\\\\t(\\\\frx360)}、{\\\\t(\\\\fry360)}、{\\\\t(\\\\frz360)}是字體分別繞x軸,y軸,z軸旋轉360度。一般使用{\\\\t(\\\\fry360)}出現沿y軸轉動的特效為多數。同樣里面的30和1500表示時間的控制 
{\\\\fs30\\\\fry90}{\\\\t(0,1500,2,\\\\fs20\\\\fry0)}字體Y軸旋轉變小完整代碼如下: 
Dialogue: Marked=0,0:00:31.51,0:00:35.50,Default,,0000,0000,0000,,{\\\\pos(160,140)}{\\\\t(\\\\fry1440)}copd 制作-X軸 
Dialogue: Marked=0,0:00:35.49,0:00:40.50,Default,,0000,0000,0000,,{\\\\pos(160,140)}copd 制作-X軸 
Dialogue: Marked=0,0:00:31.51,0:00:40.50,Default,,0000,0000,0000,,{\\\\pos(160,240)}{\\\\t(30,2500,\\\\fry1440)}copd 制作-X軸(控制性) 
Dialogue: Marked=0,0:00:31.51,0:00:35.50,Default,,0000,0000,0000,,{\\\\pos(60,60)}{\\\\t(\\\\frz1440)}copd 制作-Z軸 
Dialogue: Marked=0,0:00:35.49,0:00:40.50,Default,,0000,0000,0000,,{\\\\pos(60,60)}copd 制作-Z軸 
Dialogue: Marked=0,0:00:31.51,0:00:35.50,Default,,0000,0000,0000,,{\\\\fs15}{\\\\pos(230,40)}{\\\\t(\\\\frx1440)}copd 制作-y軸 
Dialogue: Marked=0,0:00:35.49,0:00:40.50,Default,,0000,0000,0000,,{\\\\fs15}{\\\\pos(230,40)}copd 制作-y軸 
Dialogue: Marked=0,0:00:41.00,0:00:45.00,Default,,0000,0000,0000,,{\\\\pos(190,200)}{\\\\fs50\\\\frx90}{\\\\t(0,1500,\\\\fs18\\\\frx0)}字體X軸旋轉變小 
Dialogue: Marked=0,0:00:41.00,0:00:45.00,Default,,0000,0000,0000,,{\\\\pos(190,60)}{\\\\fs40\\\\frz360}{\\\\t(0,500,\\\\fs18\\\\frz0)}字體z軸旋轉變小 
Dialogue: Marked=0,0:00:41.00,0:00:45.00,Default,,0000,0000,0000,,{\\\\pos(190,260)}{\\\\fs64\\\\fry90}{\\\\t(0,1500,\\\\fs30\\\\fry0)}字體Y軸旋轉變小 
 
1.5 字體變色 
{\\\\c&HFF8000&\\\\t(0,500,\\\\c&H80FF00&}從藍色過度到綠色至於什么搭配比較漸進,請看vobsub或者一些畫圖軟件中的調色板,如“****到綠色”等。顏色代碼,vobsub229以上的版本即可查看。顏色代碼進行層層嵌套,即可實現閃動的霓虹燈效果,如附件內JRvS的效果完整代碼; 
Dialogue: Marked=0,0:00:45.30,0:00:48.00,Default,,0000,0000,0000,,{\\\\pos(190,100)}{\\\\c&HFF8000&\\\\t(0,500,\\\\c&H80FF00&}漸變顏色 
 
1.6 淡入淡出淡入{\\\\fad(400,80)} 
淡出{\\\\fad(80,400)} 
80是淡化效果的灰度,數值0-255 
400是淡化效果完成的時間 
 
2 移動移動結合上述的各種字體特效可以實現更絢麗的效果請看這個效果 
Dialogue: Marked=0,0:00:47.00,0:00:55.00,Default,,0000,0000,0000,,{\\\\move(0,0,60,120[,100,500])}{\\\\fad(400,80)}{\\\\fs18\\\\t(130,500,\\\\fry360)}插 
Dialogue: Marked=0,0:00:47.30,0:00:55.00,Default,,0000,0000,0000,,{\\\\move(0,0,60,160[,100,500])}{\\\\fad(400,80)}{\\\\fs18\\\\t(130,500,\\\\fry360)}入 
Dialogue: Marked=0,0:00:48.00,0:00:55.00,Default,,0000,0000,0000,,{\\\\move(0,57,60,200[,100,500])}{\\\\fad(400,80)}{\\\\fs18\\\\t(130,500,\\\\fry360)}效 
Dialogue: Marked=0,0:00:48.30,0:00:55.00,Default,,0000,0000,0000,,{\\\\move(0,57,60,240[,100,500])}{\\\\fad(400,80)}{\\\\fs18\\\\t(130,500,\\\\fry360)}果


免責聲明!

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



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