LRC 轉 SBV
或者貼上字幕文字
選項
當來源檔案沒有結束時間時使用(純文字、LRC)。輸出裡的時間軸是在這裡產生的,不是轉換來的,所以填多少就是多少。
這次轉換會改變什麼
有 1 項會被捨棄或需要你決定
- 時間
字幕的結束時間——來源檔案不記錄這些時間,因此輸出中的結束時間是產生出來的,而非轉換而來
這份清單來自這兩種格式的能力矩陣,而不是你載入的這份具體檔案。如果具體檔案用到了格式允許、但矩陣沒有建模的特性,可能會遺失更多。
LRC 轉 SBV 會把每一行歌詞寫成 `0:00:12.000,0:00:15.300` 加正文的區塊,沒有字幕編號,也沒有檔案標頭。SBV 結構簡單,不少舊播放器與剪輯工具都讀得懂。
結束時間來自下一行的開始;最後一行用頁面設定的時長補足,報告會註明這一點。SBV 寫到毫秒而 LRC 只到百分秒,數值本身不會變粗,真正失去的是「終點原本不存在」這件事,因此記為 timing。
同一時間戳的多行會留在同一個時間碼區塊裡,仍是同一條字幕;空歌詞行則寫成一條沒有文字的區塊。`[ti:]`、`[ar:]`、`[al:]` 與 `[offset:]` 都沒有落點,偏移也不會被套用。輸出是 UTF-8、LF、無 BOM,依開始時間排序。
範例
一份典型的 LRC 檔轉成 SBV
輸入
[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.輸出
0:00:12.000,0:00:15.300
First line of the song.
0:00:15.300,0:00:18.000
Second line.
Second line, translated.
0:00:18.000,0:00:21.500
0:00:21.500,0:00:23.500
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]輸出
0:00:03.000,0:00:05.500
Out of order.
0:00:05.500,0:00:07.000
Leading zero omitted, one decimal.
0:00:07.000,0:00:09.000
Second with no centiseconds.
Repeated chorus line.
0:00:09.000,0:00:12.000
Repeated chorus line.
0:00:12.000,0:00:14.000
真實檔案常見的狀況:BOM、混合換行、缺前導零的時間戳、重複的副歌行。解析器不會中斷,讀不出的部分會進有損說明。
常見問題
LRC 轉 SBV 時,最後一行歌詞的結束時間怎麼定?
用頁面設定的時長補,預設是 2000 毫秒;報告會說明這個終點是生成的,因為檔案裡沒有下一行可以借。
LRC 轉 SBV 後,一條兩行歌詞還算同一條字幕嗎?
算。兩行寫在同一個時間碼區塊裡,中間只換行;SBV 沒有把一個區塊拆成兩條的規則,播放器會一起顯示。
LRC 的 `[offset:]` 在 SBV 產物裡會生效嗎?
不會。偏移會被讀取但不加進時間碼,產物與檔案字面一致;標題與藝人也沒有欄位可放,會列進有損說明。
LRC 轉 SBV 會讓時間變粗嗎?
不會。LRC 的百分秒寫成 SBV 的毫秒時間碼,例如 `[00:12.00]` 成為 `0:00:12.000`;損失記的是終點被推斷,不是精度。
LRC 轉 SBV 的產物有字幕編號或檔案標頭嗎?
沒有。每一條只有一行時間、一行正文,區塊之間空一行;把這份檔案讀回去時,順序完全由出現的位置決定。
SBV 轉回 LRC 會失去什麼?
會失去結束時間與精度:LRC 不存終點,而且只寫到百分秒,SBV 的毫秒值會被舍入;這與本頁方向不同,清單也不一樣。