跳至主要內容
SubtitleMatrix

SSA 轉 VTT

格式轉換SubStation Alpha(SSA)
或者貼上字幕文字

這次轉換會改變什麼

有 4 項會被捨棄或需要你決定

  • 樣式

    除粗體與斜體之外的全部樣式(顏色、外框、陰影、邊界)

  • 定位

    螢幕定位(每條字幕都會回到預設位置)

  • 卡拉 OK

    卡拉 OK 計時(逐音節高亮)

  • 格式專屬內容

    來源格式保留在字幕之外的內容(非字幕區塊、檔案標頭文字、單條字幕的設定、被註解掉的事件)——目標格式沒有地方存放它們

這份清單來自這兩種格式的能力矩陣,而不是你載入的這份具體檔案。如果具體檔案用到了格式允許、但矩陣沒有建模的特性,可能會遺失更多。

這一頁把 SSA 轉成 WebVTT。把檔案拖曳進來,或直接貼上文字,就會取回 VTT;轉換完全在瀏覽器裡進行,不上傳、不需註冊。

SSA 能表達的比 WebVTT 多,所以這個方向有損。片段級強調會過去——粗體與斜體變成 <b> 與 <i>,下劃線變成 <u>,顏色變成 <font color="…">;樣式表的其餘欄位、螢幕定位、卡拉OK 計時與格式私有內容都沒有落點。上方清單是從兩個格式各自能表達什麼算出來的,不是讀你的檔案。

時間軸本身不丟:SSA 只寫到百分秒,VTT 記到毫秒,換算後數值不變;反方向寫回腳本才會落到百分秒,單一時間點最多差 5 毫秒。一份可以,整季也可以:佇列依序處理,結果打包成一個 ZIP。

範例

一份典型的 SSA 檔案轉成 VTT

輸入

[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines

輸出

WEBVTT

00:00:01.000 --> 00:00:04.000
Hello there.

00:00:05.000 --> 00:00:08.000
<i>Italic</i> line.

00:00:09.000 --> 00:00:12.000
Two
lines

這份產物丟掉樣式表其餘欄位、螢幕定位、卡拉OK 與格式私有內容;粗斜體與文字保留。

同一轉換遇到一份髒檔案

輸入

[Script Info]
Title: Dirty SSA
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.

輸出

WEBVTT

00:00:01.000 --> 00:00:04.000
<b>Bold</b> and <u>underlined</u>.

00:00:05.000 --> 00:00:08.000
A soft
break and a {\p1}mystery{\p0} code.

真實檔案的 BOM、混合換行與未建模覆寫碼都會被容忍;{\fad(300,300)} 這類指令原樣留在文字裡。

常見問題

SSA 轉 VTT 後,粗體與斜體怎麼保留?

寫成 VTT 正文裡的 <b>、<i>、<u>,顏色寫成 <font color="…">;這些是片段級格式,VTT 裝得下。樣式表的字型、字級、描邊、陰影與邊界則沒有落點。

SSA 轉 VTT 後,[Script Info] 與 [Fonts] 段去哪了?

都不會出現。VTT 只保存字幕段落與檔頭;SSA 在字幕列表之外保存的 [Script Info]、[Fonts]、[Graphics] 以及 Comment: 行都沒有落點,會被列為格式私有內容的損失。

SSA 轉 VTT 後,\pos 的螢幕定位還在嗎?

不在。\pos、\an、\move 在離開 SSA 時丟棄,每條字幕回到播放器的預設位置;VTT 沒有能表達 SSA 任意座標的欄位。

SSA 轉 VTT 後,卡拉OK 計時還能保留嗎?

不能。\k、\kf、\ko 標記音節何時亮,VTT 沒有行內時刻;標記移除,音節以普通文字留下。

SSA 轉 VTT 後,0:00:04.13 的時間碼會變嗎?

數值不變。SSA 只到百分秒,VTT 寫成 00:00:04.130,補零而不四捨五入;2.9 秒仍是 2.9 秒。

SSA 轉 VTT 後,一條兩行字幕怎麼放?

放進同一條字幕,兩行上下排列;播放器會一起顯示,不會拆開。VTT 的識別行是可選的,產物不一定替每條編號。

SSA 轉 VTT 的產物長什麼樣子?

開頭是 WEBVTT 檔頭,之後每條字幕是時間範圍加文字,條與條之間空一行。

SSA 轉 VTT 後,字幕順序會重排嗎?

會依開始時間升序輸出。原始腳本若亂序,VTT 會排好,這是結構整理。

把 VTT 轉回 SSA 會丟掉什麼?

精度與格式私有內容。VTT 的毫秒寫回 SSA 只能到百分秒(單點最多差 5 毫秒),NOTE、STYLE、REGION 與 align 設定在 ASS 裡也沒有落點。

SSA 轉 VTT 會保留來源編碼嗎?

不會。產物固定 UTF-8、Unix 換行、無 BOM,來源編碼只在讀入時解碼並在結果面板說明。

相關工具