LRC 轉 SSA
或者貼上字幕文字
選項
當來源檔案沒有結束時間時使用(純文字、LRC)。輸出裡的時間軸是在這裡產生的,不是轉換來的,所以填多少就是多少。
這次轉換會改變什麼
有 1 項會被捨棄或需要你決定
- 時間
字幕的結束時間——來源檔案不記錄這些時間,因此輸出中的結束時間是產生出來的,而非轉換而來
這份清單來自這兩種格式的能力矩陣,而不是你載入的這份具體檔案。如果具體檔案用到了格式允許、但矩陣沒有建模的特性,可能會遺失更多。
LRC 轉 SSA 會把每一行歌詞變成 `[Events]` 區段裡的一條 `Dialogue:`,時間寫成 `0:00:12.00`,同一時間戳的多行用 `\N` 連接。SSA 用 `Marked` 欄位取代 SRT 的字幕編號。
LRC 沒有結束時間,SSA 每條字幕卻都需要一個。終點取下一行的開始,最後一行用頁面設定的時長補,報告會註明那一條是生成的;這一步在有損說明裡記為 timing,因為檔案本身從未寫過終點。
`[ti:]` 寫進 `[Script Info]` 的 Title;`[ar:]`、`[al:]` 與 `[offset:]` 在 SSA 沒有對應欄位,偏移只讀取不套用。輸出是 UTF-8、LF、無 BOM,依開始時間升序排列。轉換全程在瀏覽器裡完成,檔案不上傳、不需要註冊。
範例
一份典型的 LRC 檔轉成 SSA
輸入
[ti:Sample Song]
[ar:Some Artist]
[length:00:41.00]
[offset:+250]
[00:12.00]First line of the song.
[00:15.30]Second line.
[00:15.30]Second line, translated.
[00:18.00]
[00:21.50]Final line.輸出
[Script Info]
Title: Sample Song
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
Dialogue: 0,0:00:12.00,0:00:15.30,Default,,0,0,0,,First line of the song.
Dialogue: 0,0:00:15.30,0:00:18.00,Default,,0,0,0,,Second line.\NSecond line, translated.
Dialogue: 0,0:00:18.00,0:00:21.50,Default,,0,0,0,,
Dialogue: 0,0:00:21.50,0:00:23.50,Default,,0,0,0,,Final line.
這個方向丟掉的是結束時間;開始時間與文字逐行對應。
同一轉換遇到一份格式凌亂的檔案
輸入
[ar:Some Artist]
[0:05.5]Leading zero omitted, one decimal.
[00:07]Second with no centiseconds.
[00:03.00]Out of order.
[00:07.00][00:09.00]Repeated chorus line.
[00:12.00]輸出
[Script Info]
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
Dialogue: 0,0:00:03.00,0:00:05.50,Default,,0,0,0,,Out of order.
Dialogue: 0,0:00:05.50,0:00:07.00,Default,,0,0,0,,Leading zero omitted, one decimal.
Dialogue: 0,0:00:07.00,0:00:09.00,Default,,0,0,0,,Second with no centiseconds.\NRepeated chorus line.
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Repeated chorus line.
Dialogue: 0,0:00:12.00,0:00:14.00,Default,,0,0,0,,
真實檔案常見的狀況:BOM、混合換行、缺前導零的時間戳、重複的副歌行。解析器不會中斷,讀不出的部分會進有損說明。
常見問題
LRC 轉 SSA 時,每條字幕的結束時間是怎麼補出來的?
用下一行的開始當終點;最後一行沒有下一行,改用頁面設定的時長補,報告會註明這一條的終點是生成的,有損說明記為 timing。
LRC 的 `[ti:]` 標題在 SSA 產物裡寫到哪?
寫進 `[Script Info]` 的 Title 欄位;`[ar:]` 藝人、`[al:]` 專輯與 `[offset:]` 都沒有對應欄位,會列進有損說明,偏移也不會被套用。
LRC 轉 SSA 時,同一時間戳的多行歌詞會變成兩條字幕嗎?
不會。它們合成一條 Dialogue,兩半用 `\N` 連接,播放器一起顯示;拆成兩條反而會在同一個時刻互相蓋掉。
LRC 的百分秒時間進到 SSA 後會改變嗎?
不會。SSA 同樣寫到百分秒,`[00:04.12]` 原樣寫成 `0:00:04.12`,兩邊的精細度一致。
LRC 轉 SSA 後,`Marked` 欄位裡填的是什麼?
它取代 SRT 的字幕編號,標示這條字幕在輸出裡的順序;轉換時依開始時間升序填入,不是原檔案的行號。
SSA 轉回 LRC 會丟掉哪些東西?
會丟掉時間軸、樣式、定位、卡拉 OK 與格式私有內容;LRC 只留開始時間與文字,與本頁方向的清單不同。