跳至主要內容
SubtitleMatrix

MicroDVD 轉 SMI

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

選項

時間以哪個影格率計算。在格式頁面上,這是 MicroDVD 需要的值,因為它把時間存成影格編號。在影格率頁面上,它是檔案當初對應的速率 —— 字幕是照這個版本製作的 —— 而頁面的第二個欄位填你要搭配的影片速率。常見的有 23.976、24、25、29.97、30、50、59.94 和 60。填錯會讓整條時間軸位移;在影格率頁面上,位移是按比例發生,而不是固定的量。

這次轉換會改變什麼

有 1 項會被捨棄或需要你決定

  • 影格率

    來源檔案以影格編號儲存時間——每個時間戳記都取決於你提供的影格率

這份清單來自這兩種格式的能力矩陣,而不是你載入的這份具體檔案。如果具體檔案用到了格式允許、但矩陣沒有建模的特性,可能會遺失更多。

這一頁把 MicroDVD 寫成 SAMI(SMI):每條字幕是一個 `<SYNC Start=毫秒>` 加一個 `<P>`。因為一條 SYNC 會替換畫面上的全部內容,每條字幕後面還要補一個 `<P>&nbsp;`,把畫面清空。

時間精確到毫秒:`{100}` 在 25 fps 下寫成 `Start=4000`,`{150}` 寫成 `Start=6000`。影格率仍依頁面欄位、檔案宣告、預設 25 的順序取用,頁面欄位優先;影格編號本身不保留,SAMI 也沒有記錄影格率的欄位。

`|` 會寫成 `<br>`,兩行仍在同一個 `<P>` 裡。產物是 `<SAMI>`、`<HEAD>`、`<BODY>` 的完整文件,帶一個只做置中與字型的最小樣式區塊;MicroDVD 沒有樣式可帶過來,所以這裡沒有別的可丟。輸出 UTF-8、LF、無 BOM,批次可取消。

範例

一份典型的 MicroDVD 檔轉成 SMI

輸入

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

輸出

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=4000>
<P>The quick brown fox jumps over the lazy dog.
<SYNC Start=6000>
<P>&nbsp;
<SYNC Start=8000>
<P>Faster than<br>the last one.
<SYNC Start=10400>
<P>&nbsp;
</BODY>
</SAMI>

這個方向丟掉的是影格率;其餘逐行對應。

同一轉換遇到一份格式凌亂的檔案

輸入

{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.   

輸出

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=4000>
<P>Leading zeros in the frame numbers.
<SYNC Start=6000>
<P>&nbsp;
<SYNC Start=12000>
<P>An unrecognized line above was kept in place.
<SYNC Start=13600>
<P>&nbsp;
<SYNC Start=16000>
<P>Trailing spaces are kept.   
<SYNC Start=18000>
<P>&nbsp;
</BODY>
</SAMI>

真實檔案常見的狀況:混合換行、BOM、散落的空白、帶前導零的影格編號、認不出的行。可以對照上面那份乾淨範例,看解析器能容忍到什麼程度。

常見問題

MicroDVD 轉 SMI 時,每條字幕後面的 `<P>&nbsp;` 是做什麼的?

用來清屏。SAMI 的 `<SYNC>` 意思是「從此刻起顯示這些內容」,不寫一條空內容,上一條字幕會一直留在畫面上;`&nbsp;` 讓畫面在結束時刻回到空白。

MicroDVD 轉 SMI 的 `Start=` 是什麼單位?

毫秒。第 100 個影格在 25 fps 下是 `Start=4000`,第 150 個是 `Start=6000`,換算結果不四捨五入。

MicroDVD 轉 SMI 時兩行字幕怎麼寫?

在同一個 `<P>` 裡用 `<br>` 分開。它仍然是一條字幕,結束時刻由下一條 SYNC 決定。

MicroDVD 轉 SMI 會保留影格編號嗎?

不會。SAMI 只認毫秒,影格編號與影格率都不會出現在產物裡。

SMI 再轉回 MicroDVD 會丟掉什麼?

丟掉樣式、定位、影格率與格式私有構造。SAMI 的 CSS 區塊與 `<SYNC>` 結構都不在 MicroDVD 的模型裡。

MicroDVD 轉 SMI 時影格率欄位留空會怎樣?

先讀檔案第一行的宣告,沒有宣告才用預設 25,並在有損說明裡寫明;用上預設值時整條時間軸都是按 25 猜的。

相關工具