跳至主要內容
SubtitleMatrix

MicroDVD 轉 TTML

格式轉換MicroDVD(SUB)
或者貼上字幕文字

選項

時間以哪個影格率計算。在格式頁面上,這是 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>` 的時間都已經固定成毫秒,產物本身不再依賴影格率。

相關工具