跳至主要內容
SubtitleMatrix

MicroDVD 字幕格式

格式轉換MicroDVD(SUB)

這種格式能表達什麼

文字樣式
僅純文字
畫面定位
否
卡拉 OK 計時
否
字幕段落內換行
是
時間軸
每條字幕都有開始與結束時間
時間精確度
1 毫秒
時間以影格編號儲存
是
由右至左的文字
是

範例

一份典型的 MicroDVD 檔,以及從中讀出的內容

檔案

{1}{1}25
{100}{150}The quick brown fox jumps over the lazy dog.
{200}{260}Faster than|the last one.

從中讀出了什麼

2 cues, 3 lines of text

  {100}{150}  =  00:00:04.000 → 00:00:06.000
    The quick brown fox jumps over the lazy dog.
  {200}{260}  =  00:00:08.000 → 00:00:10.400
    Faster than
    the last one.

Outside the cues:
  frame rate 25 fps, from the first line of the file

右欄不是轉換產物,而是本站從左欄檔案裡讀出的內容,也是這份檔案任何一次轉換的起點。

一份格式凌亂的 MicroDVD 檔,仍然讀得出什麼

檔案

{1}{1}23.976
{0100}{0150}Leading zeros in the frame numbers.
[INFORMATION]
{300}{340}An unrecognized line above was kept in place.
{400}{450}Trailing spaces are kept.   

從中讀出了什麼

3 cues, 3 lines of text

  {100}{150}  =  00:00:04.171 → 00:00:06.256
    Leading zeros in the frame numbers.
  {300}{340}  =  00:00:12.513 → 00:00:14.181
    An unrecognized line above was kept in place.
  {400}{450}  =  00:00:16.683 → 00:00:18.769
    Trailing spaces are kept.   

Outside the cues:
  frame rate 23.976 fps, from the first line of the file
  kept as it was  [INFORMATION]

BOM、Windows 換行、認不出的行、帶前導零的影格編號都出現過。解析不會中斷:讀不出的部分會如實回報,而不是悄悄丟掉。

把 MicroDVD 轉成其他格式

每一個都完全在你的瀏覽器裡執行。標籤標明了那個方向要付出什麼代價,打開之前就能看到。

轉換為此格式

MicroDVD(`.sub`)是 DivX 時代的字幕格式:一行一條字幕,形狀是 `{開始影格}{結束影格}正文`。它存的不是時間碼,而是影格編號——也就是說,離開影格率,檔案裡的數字說明不了任何時刻。這也是它今天最容易出問題的地方:檔案複製來複製去,影格率宣告卻常常是錯的。

慣例是在第一行寫一條 `{1}{1}25` 之類的宣告。但大量 `.sub` 是轉檔工具按 PAL 的 25 個影格寫死的,宣告 25 並不等於素材真的跑在 25。所以本站把頁面上的影格率欄位排在檔案宣告之前:你先說這份字幕該按多少影格讀,宣告只在欄位留空時才生效,兩者都沒有才落到預設的 25,並在有損說明裡寫明整條時間軸是猜的。

它能表達的東西很少:每條字幕一個開始影格、一個結束影格、一段正文,正文裡用 `|` 表示硬換行。沒有樣式、沒有畫面位置、沒有卡拉 OK 逐字計時。有些檔案帶 `{Y:i}` 這類控制碼,本站把它們當正文原樣保留,不執行——看不懂就默默改寫,比留著標記更糟。所有轉換都在瀏覽器裡完成,檔案不上傳。

常見問題

MicroDVD 檔案第一行的 `{1}{1}25` 是什麼?

是影格率宣告,慣例寫在第一個非空行。它不是一條字幕,而是告訴讀檔案的人「這份字幕是按每秒 25 個影格寫的」;沒有這一行,檔案裡的影格編號就只能靠外部約定換算。

MicroDVD 的 `{100}{150}` 怎麼換算成秒?

影格編號除以影格率。25 fps 下第 100 個影格是 4 秒,第 150 個是 6 秒,所以這條字幕涵蓋 4.000 到 6.000 秒;檔案本身不存這個除法需要的數,它是外部的。

同一個 MicroDVD 檔按 23.976 和 25 讀,時間軸差多少?

影格編號不變,秒數按比例變。一小時素材在兩種影格率下會差出看得見的秒數,而且越往後越大;所以這不是精度問題,而是整條時間軸對不上畫面。

MicroDVD 裡的 `{Y:i}` 會被當成斜體執行嗎?

不會。MicroDVD 的樣式能力是 none,這類括號裡的控制碼按正文原樣保留,不解析也不丟棄;產物裡看到它,說明來源檔案本來就有這幾個字元。

MicroDVD 正文裡的 `|` 是換行還是普通字元?

是格式自帶的硬換行分隔符,本站會把它拆成同一條字幕的兩行。格式沒有跳脫機制,所以正文真的想顯示一條豎線,往返之後會變成兩行——這是格式本身的邊界,不是轉換改壞的。