顯示廣告
隱藏 ✕
看板 Knuckles_note
作者 Knuckles (站長 那克斯)
標題 [轉檔] 將KMP輸出的smi字幕檔轉為srt格式
時間 2011年01月08日 Sat. PM 12:31:34


有些影片的字幕檔是.smi檔,在KMPlayer下播放沒有問題
可是用 MPC 播放就壞掉了
所以想要把 .smi 的字幕檔轉為一般的 .srt 格式

KMP的smi格式與其他軟體的定義不同,所以無法直接丟給轉檔程式轉

KMP的smi格式:

<SYNC Start=1490 End=4179><P Class=ZHCC>
第一句
<SYNC Start=4670 End=9269><P Class=ZHCC>
第二句

其他軟體的smi格式:

<SYNC Start=1490><P>第一句
<SYNC Start=4179><P>
<SYNC Start=4670><P>第二句
<SYNC Start=9269><P>

所以要先把 KMP的smi格式轉為其他軟體的smi格式

可以使用 MadEdit [點此下載]
的「搜尋」/「取代」,勾選「使用正規表示式」
搜尋文字:<SYNC Start=(\d+) End=(\d+)><P>\r\n(.*?)\r\n
取代文字:<SYNC Start=$1><P>$3\r\n<SYNC Start=$2><P>\r\n
點「取代全部」後存檔

轉為這種格式的smi檔後在MPC就可以正常顯示了,不過變成在KMP會有問題
所以要再轉為一般的srt檔

使用 Subtitle Workshop [點此下載]
點「File」/「Load subtitle」,選取改好的smi檔
點「File」/「Save as...」,存成 srt 檔即可

若字幕中有出現 &#12345 這樣的東西,代表有用到日文或特殊字
只有用KMP播放時才會轉為正常的字,但用MPC就不行了
所以要再把 &#12345 解碼,但原本的檔案編碼為 big5 沒辦法存日文或特殊字
要先把檔案編碼改為 UTF-8

使用 MadEdit 開啟 srt 檔
點「工具」/「轉換檔案編碼」,選「UTF-8」後按確定
接著要點「工具」/「沒有 Unicode BOM (Byte-Order Mark)」/「插入/刪除 BOM」
加入 Unicode的檔頭,不然播放影片時會讀不到字幕檔

轉為UTF-8編碼後,到 HTML Entities encode and decode 這個網頁
把srt檔的內文貼到 Input: 後點「Decode」,再把 Result: 貼回srt檔覆蓋本來的內文即可

例如這段文字:
答&#12360&#12399&#12356&#12388&#12418私&#12398胸&#12395...
使用HTML Entities Decode後就會變成
答えはいつも私の胸に...


--
※ 作者: Knuckles  時間: 2011-01-08 12:31:34  來自: 111-248-3-35.dynamic.hinet.net
※ 編輯: Knuckles  時間: 2011-01-08 12:33:54  來自: 111-248-3-35.dynamic.hinet.net
※ 編輯: Knuckles  時間: 2011-01-10 06:35:47  來自: 111-248-6-79.dynamic.hinet.net
※ 編輯: Knuckles  時間: 2011-01-10 06:36:59  來自: 111-248-6-79.dynamic.hinet.net
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 23394 
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇
看板名稱: 確定(Enter) 取消(Esc) 搜尋(Space)
查詢帳號: 確定(Enter) 取消(Esc) 搜尋(Space)
搜尋: m)m文 b)進板 c)未分類 a)作者 /)標題 q)取消?[q]

搜尋 送出(Enter) 取消(Esc)

回覆文章至: f)看板 m)作者信箱 b)兩者皆是 q)取消?[f]
要引用原文嗎? y)引用原文 n)不引用 a)全部回覆 r)複製原文 q)取消?[y]
轉錄本文章於看板: 1)使用連結 2)使用複製 q)取消 ?[1]
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc) 全部(a)

確定要刪除這篇文章?(可按大U救回) 確定(Enter) 取消(Esc)

刪除理由:

確定(Enter) 取消(Esc)
加到這個分類: 確定(Enter) 下一層(→) 回上層(←) 取消(Esc)
你覺得這篇文章: 1)真讚 2)真瞎 q)取消?[1] (再選一次即可收回)
你覺得這篇文章: 1)值得推薦 2)表示反對 3)單純註解 q)取消?[3]
guest
預覽(Enter) 取消(Esc)
上傳圖片
按ctrl+Enter可輸入下一行。
guest
確定要送出? 確定(Enter) 取消(Esc) 繼續(e)
搜尋: 送出(Enter) 取消(Esc)

▏▎▍▌▋▊▉ 請按任意鍵繼續