SSA 轉 SRT
或者貼上字幕文字
這次轉換會改變什麼
有 4 項會被捨棄或需要你決定
- 樣式
全部樣式(粗體、斜體、顏色、外框、陰影)
- 定位
螢幕定位(每條字幕都會回到預設位置)
- 卡拉 OK
卡拉 OK 計時(逐音節高亮)
- 格式專屬內容
來源格式保留在字幕之外的內容(非字幕區塊、檔案標頭文字、單條字幕的設定、被註解掉的事件)——目標格式沒有地方存放它們
這份清單來自這兩種格式的能力矩陣,而不是你載入的這份具體檔案。如果具體檔案用到了格式允許、但矩陣沒有建模的特性,可能會遺失更多。
這一頁把 SSA 腳本壓平成普通的 SRT。SSA 把字幕當成由樣式引擎繪製的文字,SRT 只把它當成兩個時間碼之間顯示的一段文字;轉換在瀏覽器裡完成,不上傳。
片段級強調會過去:粗體寫成 SRT 的 <b>、斜體寫成 <i>、下劃線寫成 <u>、顏色寫成 <font color="…">。有四類東西沒有落點:樣式表的全域設定(字型、字級、顏色、描邊、邊界)、螢幕定位(\pos、\an、\move)、卡拉OK 的逐字計時,以及字幕段落模型之外的腳本構造([Script Info]、Comment: 行、內嵌字型與圖形)。
時間軸不丟。SSA 只寫到百分秒,0:00:04.13 就是 4.13 秒;SRT 記到千分之一秒,換算後數值不變。反方向(毫秒寫回 SSA)才會落到百分秒,單一時間點最多差 5 毫秒。產物編號從 1 開始,可批次拖入整季,處理完打包下載。
範例
一份典型的 SSA 檔案轉成 SRT
輸入
[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
輸出
1
00:00:01,000 --> 00:00:04,000
Hello there.
2
00:00:05,000 --> 00:00:08,000
<i>Italic</i> line.
3
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.輸出
1
00:00:01,000 --> 00:00:04,000
<b>Bold</b> and <u>underlined</u>.
2
00:00:05,000 --> 00:00:08,000
A soft
break and a {\p1}mystery{\p0} code.
真實檔案的 BOM、CRLF、認不出的覆寫碼與壞時間碼都不會讓解析失敗;跳過的部分會如實記進有損說明。
常見問題
SSA 轉 SRT 後,粗體與斜體怎麼保留?
寫成 SRT 正文裡的 <b>、<i>、<u>,顏色寫成 <font color="…">;這些是片段級格式,SRT 裝得下。樣式表的字型、字級、描邊、陰影與邊界則沒有落點。
SSA 轉 SRT 後,\pos 的螢幕定位去哪了?
SRT 沒有位置欄位,\pos、\an、\move 在離開 SSA 時丟棄,每條字幕回到播放器的預設位置,多數是畫面底部置中;這是上方有損清單的一項。
SSA 轉 SRT 後,卡拉OK 計時還能保留嗎?
不能。\k、\kf、\ko 標記音節何時亮,SRT 沒有行內時刻;標記移除,音節以普通文字留下並一次顯示。
SSA 轉 SRT 時,0:00:04.13 的時間碼怎麼改寫?
寫成 00:00:04,130。SSA 只到百分秒,SRT 到毫秒,百分秒乘十即可;分隔符從點改成逗號,不四捨五入也不平移。
SSA 轉 SRT 後,[Script Info] 與 Comment: 行呢?
都不會過去。只有 Dialogue: 行變成字幕;[Script Info](含標題)、樣式表、Comment: 行與 [Fonts]/[Graphics] 全部丟棄。
SSA 轉 SRT 後,一條兩行字幕怎麼放?
寫成兩行,上下排列,仍屬於同一條字幕;播放器會一起顯示,不會拆成兩條。
SSA 轉 SRT 的產物長什麼樣子?
每條時間碼上方有一個從 1 開始的編號,兩條之間空一行。
SSA 轉 SRT 後,字幕順序會重排嗎?
會依開始時間升序輸出。原始腳本若亂序,SRT 會排好,這是結構整理。
把 SRT 轉回 SSA 會丟掉什麼?
精度。SRT 的毫秒寫回 SSA 只能到百分秒,單點最多差 5 毫秒。
SSA 轉 SRT 會保留來源編碼嗎?
不會。產物固定 UTF-8、Unix 換行、無 BOM,來源編碼只在讀入時解碼並在結果面板說明。