MicroDVD 轉 TTML
或者貼上字幕文字
選項
時間以哪個影格率計算。在格式頁面上,這是 MicroDVD 需要的值,因為它把時間存成影格編號。在影格率頁面上,它是檔案當初對應的速率 —— 字幕是照這個版本製作的 —— 而頁面的第二個欄位填你要搭配的影片速率。常見的有 23.976、24、25、29.97、30、50、59.94 和 60。填錯會讓整條時間軸位移;在影格率頁面上,位移是按比例發生,而不是固定的量。
這次轉換會改變什麼
有 1 項會被捨棄或需要你決定
- 影格率
來源檔案以影格編號儲存時間——每個時間戳記都取決於你提供的影格率
這份清單來自這兩種格式的能力矩陣,而不是你載入的這份具體檔案。如果具體檔案用到了格式允許、但矩陣沒有建模的特性,可能會遺失更多。
這一頁把 MicroDVD 寫成 TTML:每條字幕是一個 `<p begin="00:00:04.000" end="00:00:06.000">正文</p>`,整份檔案是帶 XML 宣告與命名空間的 `<tt>` 文件。影格編號先按影格率換成毫秒,再寫成時鐘時間。
時間不丟:TTML 與這裡的換算結果都到毫秒,`{100}` 與 `{150}` 在 25 fps 下原樣寫成 4.000 與 6.000。丟的是影格率——TTML 的 cue 只有時鐘,沒有影格編號,產物也不會寫 `ttp:frameRate`,因為 MicroDVD 的影格率只用於這一次換算。
樣式與定位也沒有內容可寫:MicroDVD 的樣式能力是 none,正文裡的 `{Y:i}` 這類控制碼按文字保留,不會被翻譯成 `<span>`。所以產物只有 `<body>` 下的 `<p>`,不會有 `<styling>` 或 `<layout>` 標頭。`|` 寫成 `<br/>`,兩行仍在同一個 `<p>`。
範例
一份典型的 MicroDVD 檔轉成 TTML
輸入
{1}{1}25
{100}{150}The quick brown fox jumps over the lazy dog.
{200}{260}Faster than|the last one.
輸出
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:04.000" end="00:00:06.000">The quick brown fox jumps over the lazy dog.</p>
<p begin="00:00:08.000" end="00:00:10.400">Faster than<br/>the last one.</p> </body>
</tt>
這個方向丟掉的是影格率;其餘逐行對應。
同一轉換遇到一份格式凌亂的檔案
輸入
{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.
輸出
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:04.000" end="00:00:06.000">Leading zeros in the frame numbers.</p>
<p begin="00:00:12.000" end="00:00:13.600">An unrecognized line above was kept in place.</p>
<p begin="00:00:16.000" end="00:00:18.000">Trailing spaces are kept. </p> </body>
</tt>
真實檔案常見的狀況:混合換行、BOM、散落的空白、帶前導零的影格編號、認不出的行。可以對照上面那份乾淨範例,看解析器能容忍到什麼程度。
常見問題
MicroDVD 轉 TTML 後,`begin` 與 `end` 寫的是什麼格式?
時鐘寫法,精確到毫秒,例如 `00:00:04.000` 與 `00:00:06.000`;影格編號已在轉換時換算掉,產物裡不會出現 `{100}`。
MicroDVD 轉 TTML 會丟掉影格率嗎?
會。TTML 的 cue 沒有影格編號,產物也不寫 `ttp:frameRate`;那個影格率只在換算時用過一次,所以這一頁的損失清單只有影格率一項。
MicroDVD 轉 TTML 時兩行字幕怎麼寫?
在同一個 `<p>` 裡用 `<br/>` 分開。TTML 的 `<p>` 就是一條字幕,兩行不會被拆成兩個段落。
MicroDVD 轉 TTML 會生成 `<styling>` 或 `<layout>` 標頭嗎?
不會。MicroDVD 沒有樣式與畫面位置可帶,產物只有 XML 宣告、命名空間與 `<body>` 裡的 `<p>`;`{Y:i}` 這類控制碼作為文字原樣保留。
TTML 再轉回 MicroDVD 會丟掉什麼?
丟掉影格率。TTML 只有時鐘,寫回 MicroDVD 時要指定影格率並取整到影格;TTML 的樣式表與區域表同樣沒有落點。
MicroDVD 轉 TTML 時影格率欄位留空會怎樣?
先讀檔案第一行的宣告,沒有才用預設 25,並在有損說明裡寫明;兩種情況下 `<p>` 的時間都已經固定成毫秒,產物本身不再依賴影格率。