顯示廣告
隱藏 ✕
ZEm
看板 Knuckles_note
作者
標題
 [轉檔] 將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
※ 看板: Knuckles_note 文章推薦值: 0 目前人氣: 0 累積人氣: 11991 
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇