MicroDVD 轉 VTT
或者貼上字幕文字
選項
時間以哪個影格率計算。在格式頁面上,這是 MicroDVD 需要的值,因為它把時間存成影格編號。在影格率頁面上,它是檔案當初對應的速率 —— 字幕是照這個版本製作的 —— 而頁面的第二個欄位填你要搭配的影片速率。常見的有 23.976、24、25、29.97、30、50、59.94 和 60。填錯會讓整條時間軸位移;在影格率頁面上,位移是按比例發生,而不是固定的量。
這次轉換會改變什麼
有 1 項會被捨棄或需要你決定
- 影格率
來源檔案以影格編號儲存時間——每個時間戳記都取決於你提供的影格率
這份清單來自這兩種格式的能力矩陣,而不是你載入的這份具體檔案。如果具體檔案用到了格式允許、但矩陣沒有建模的特性,可能會遺失更多。
這一頁把 MicroDVD 寫成 WebVTT:開頭是 `WEBVTT`,之後每條字幕是 `00:00:04.000 --> 00:00:06.000` 加正文。時間用點分隔毫秒,播放器的讀法與 SRT 基本一致。
影格編號按影格率換算成毫秒,精度不降:VTT 寫三位小數,換算結果原樣落進去。影格率依頁面欄位、檔案宣告、預設 25 的順序取用,頁面欄位優先;產物裡沒有影格編號,也沒有記錄影格率的位置,所以影格率會進損失清單。
`|` 寫成換行,兩行仍在同一條字幕。MicroDVD 沒有樣式與定位,這一頁不會憑空生成 `<b>`、`<i>` 或 `line:`、`position:` 設定;正文裡的 `{Y:i}` 這類控制碼按文字保留。輸出依開始時間升序,UTF-8、LF、無 BOM。
範例
一份典型的 MicroDVD 檔轉成 VTT
輸入
{1}{1}25
{100}{150}The quick brown fox jumps over the lazy dog.
{200}{260}Faster than|the last one.
輸出
WEBVTT
00:00:04.000 --> 00:00:06.000
The quick brown fox jumps over the lazy dog.
00:00:08.000 --> 00:00:10.400
Faster than
the last one.
這個方向丟掉的是影格率;其餘逐行對應。
同一轉換遇到一份格式凌亂的檔案
輸入
{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.
輸出
WEBVTT
00:00:04.000 --> 00:00:06.000
Leading zeros in the frame numbers.
00:00:12.000 --> 00:00:13.600
An unrecognized line above was kept in place.
00:00:16.000 --> 00:00:18.000
Trailing spaces are kept.
真實檔案常見的狀況:混合換行、BOM、散落的空白、帶前導零的影格編號、認不出的行。可以對照上面那份乾淨範例,看解析器能容忍到什麼程度。
常見問題
MicroDVD 轉 VTT 的產物開頭為什麼是 `WEBVTT`?
WebVTT 規範要求檔案以這一行標識開頭,播放器與瀏覽器都靠它辨識格式;它不是一條字幕,也不佔時間軸。
MicroDVD 轉 VTT 的時間碼用點還是逗號?
用點。VTT 寫 `00:00:04.000`,SRT 寫 `00:00:04,000`;同一個時刻,兩種寫法。
MicroDVD 轉 VTT 時兩行字幕怎麼寫?
在時間碼下面直接換行,兩行都在同一條字幕裡;VTT 沒有像 MicroDVD 那樣的豎線分隔符。
MicroDVD 轉 VTT 會保留影格編號嗎?
不會。產物只有毫秒時間碼;`{100}` 與 `{150}` 換算完就消失了,原始 `.sub` 要另存。
MicroDVD 轉 VTT 時影格率欄位填錯會怎樣?
整條時間軸按比例偏,而且 VTT 裡沒有任何欄位能記錄這件事。填 25 去讀 23.976 的素材,短片段看不出來,長片會明顯錯位。
VTT 再轉回 MicroDVD 會丟掉什麼?
丟掉樣式、影格率與格式私有構造;VTT 的樣式、`NOTE` 區塊與 cue 設定都進不了 MicroDVD 的影格編號模型。