跳至主要內容
SubtitleMatrix

SSA 轉 CSV

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

這次轉換會改變什麼

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

  • 樣式

    全部樣式(粗體、斜體、顏色、外框、陰影)

  • 定位

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

  • 卡拉 OK

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

  • 格式專屬內容

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

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

這一頁把 SSA 轉成 CSV。拖曳檔案進來,或貼上文字,就會取回 CSV 版本;轉換整個在瀏覽器裡完成,不上傳、不需要帳號。

兩個格式存的東西不一樣,這不是外觀問題:樣式表、螢幕定位、卡拉OK 與格式私有內容在 CSV 裡都沒有落點。上方清單由兩個格式各自能表達什麼算出,不是讀你的檔案,所以在載入之前就是同一個答案。SSA 的時間只到百分秒,0:00:04.13 寫成 00:00:04.130,補零而已,時間軸一點都沒動。

一份檔案可以,整季也可以:佇列依序處理,結果一起下載成一個 ZIP。

範例

一份典型的 SSA 檔案轉成 CSV

輸入

[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

輸出

start,end,text
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.

輸出

start,end,text
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."

真實檔案常見的損壞:混合換行、散落的空白、留空的欄位。對照乾淨樣例,可以看出解析器容忍到什麼程度。

常見問題

SSA 轉 CSV 後,樣式表的字型與字級還在嗎?

不在。CSV 只有 start、end、text 三欄,字型、字級、描邊、陰影與邊界都沒有落點;留在文字裡的只有片段級強調標籤,例如 <i>、<b>、<u> 與 <font color="…">。

SSA 轉 CSV 後,\pos 的螢幕定位會保留嗎?

不會。CSV 不記錄畫面位置,\pos、\an、\move 在離開 SSA 時丟棄,每條字幕回到播放器自選的預設位置,多數是畫面底部置中。

SSA 轉 CSV 時,卡拉OK 的逐字計時去哪了?

計時沒了,字還在。\k、\kf、\ko 標記每個音節何時亮起,CSV 沒有行內時刻的欄位;標記移除後,音節以普通文字進入正文。

SSA 轉 CSV 時 0:00:04.13 會變成什麼?

00:00:04.130。SSA 只寫到百分秒,CSV 寫到三位毫秒,這是補零不是四捨五入;同一個時刻仍在同一位置,2.9 秒的字幕仍是 2.9 秒。

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

放在同一個 text 儲存格裡,兩行之間是真換行,整個儲存格依 CSV 規則加雙引號;兩行仍屬於同一條字幕。

SSA 轉 CSV 會保留 Comment: 行與 [Script Info] 嗎?

都不會。只有 Dialogue: 行變成字幕;[Script Info] 的設定、樣式表、Comment: 行與 [Fonts]/[Graphics] 全部丟棄,標題也沒有欄位可放。

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

第一列是表頭 start,end,text,之後一條字幕一列。時間用 00:00:04.130 這種寫法,因為逗號在 CSV 裡是欄位分隔符。

SSA 轉 CSV 後,字幕順序會改變嗎?

會依開始時間升序排列,最早的在最前。原始腳本若亂序,產物會排回正軌,這是結構整理而非內容改動。

把 CSV 轉回 SSA 會丟掉什麼?

精度。CSV 的毫秒寫回 SSA 只能到百分秒,單點最多差 5 毫秒;去程這一頁沒有丟時間,代價只在回程。

SSA 轉 CSV 會保留原檔編碼嗎?

不會。產物固定 UTF-8、Unix 換行、無 BOM;來源若是 UTF-16 或 Windows 單一位元組編碼,讀入時解碼並在結果面板說明。

相關工具