SMI 轉 CSV
或者貼上字幕文字
這次轉換會改變什麼
有 3 項會被捨棄或需要你決定
- 樣式
全部樣式(粗體、斜體、顏色、外框、陰影)
- 定位
螢幕定位(每條字幕都會回到預設位置)
- 格式專屬內容
來源格式保留在字幕之外的內容(非字幕區塊、檔案標頭文字、單條字幕的設定、被註解掉的事件)——目標格式沒有地方存放它們
這份清單來自這兩種格式的能力矩陣,而不是你載入的這份具體檔案。如果具體檔案用到了格式允許、但矩陣沒有建模的特性,可能會遺失更多。
這一頁把 SMI 轉成 CSV:拖曳檔案進來,或直接貼上文字,就會拿回一份表格。轉換完全在瀏覽器裡執行,不會上傳。
這兩種格式存的東西不同,而且差別不是外觀問題:樣式、定位與格式私有內容在 CSV 裡沒有落點。時間軸不受影響:`Start=4126` 寫成 `00:00:04.126`。上方清單是從兩種格式各自能表達什麼算出來的。
單一檔案可以,整季影集也可以:佇列會依序處理,結果一起打包成一個 ZIP 下載。
範例
一份典型的 SMI 檔案轉成 CSV
輸入
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>
</BODY>
</SAMI>
輸出
start,end,text
00:00:01.000,00:00:03.000,Hello there.
00:00:03.500,00:00:06.000,"How are you?
Fine, thanks."
這份產物丟掉了 STYLE、定位與 TITLE;行內強調寫進文字欄,時間不變。
同一轉換遇到格式紊亂的輸入
輸入
<SAMI>
<HEAD>
<TITLE>Episode 1</TITLE>
<STYLE TYPE="text/css">
<!--
.ENCC { Name: English; }
-->
</STYLE>
</HEAD>
<BODY>
<sync start="00:00:02,500">
<P Class=ENCC>Line one<br>Line two
<sync start=9000>
<P Class=ENCC>Tom & Jerry
<SYNC Start=12000>
<P Class=ENCC>
</BODY>
</SAMI>
輸出
start,end,text
00:00:02.500,00:00:09.000,"Line one
Line two"
00:00:09.000,00:00:12.000,Tom & Jerry
真實檔案常見的損壞就是這樣——混合換行、散落的空白、壞掉的 SYNC 區塊。拿它和上面那份乾淨樣本對照,就能看出解析器容忍到什麼程度。
常見問題
SMI 轉 CSV 後,行內粗體與顏色放在哪一欄?
放在 `text` 欄,以標籤形式寫出,例如 `<i>` 或 `<font color>`;CSV 沒有樣式欄,這是唯一還能承載行內強調的位置。
SMI 轉 CSV 後,時間戳會捨入嗎?
不會。SMI 與 CSV 都能到毫秒,`Start=4126` 原樣寫成 `00:00:04.126`,顯示 2.9 秒的字幕仍然是 2.9 秒。
SMI 的 <STYLE> CSS 與 Class 屬性在 CSV 裡怎麼放?
放不下。CSV 只有 `start,end,text` 三欄,段落屬性、它們指向的 CSS 與 `<TITLE>` 都沒有欄位,轉換時全部丟棄。
SMI 轉 CSV 後,兩行的字幕還在同一列嗎?
在同一列。兩行文字都放在同一個 `text` 儲存格裡,依 CSV 規則加上引號。
SMI 轉 CSV 時,亂序的字幕會怎麼處理?
CSV 會依開始時間升序寫出;原始檔案若亂序,產物會替你排好,順序只影響讀取,不影響內容。
SMI 轉 CSV 的表格可以直接用 Excel 開啟嗎?
可以。產物是標準 CSV,表頭固定 `start,end,text`,Excel、Numbers 與 Google 試算表都能直接開啟。
SMI 轉 CSV 後,清屏區塊會產生空白列嗎?
不會。`<P> ` 沒有文字,只拿來清屏,不會寫成一列,避免表格裡出現來源不明的空白。
SMI 轉 CSV 之後再轉回 SMI 會補回樣式嗎?
不會。這一程丟掉的樣式、定位與私有內容沒有記錄在 CSV 裡,反向轉換只能得到同樣結構的純文字字幕。
SMI 轉 CSV 的產物使用什麼編碼?
固定 UTF-8、Unix 換行、無 BOM;輸入若是 UTF-16 或 Windows 單一位元組編碼,讀入時會先解碼。