mkv字幕分離與重製

 要用到軟體mkvtoolnix
到這裡下載選擇windows 的安裝程式,因為它用wxWindow,用rar版會缺dll
http://www.bunkus.org/videotools/mkvtoolnix/

主要是以命令列為主
mkvinfo 觀看mkv的資訊
mkvextract分離
mmg圖形介面
mkvmerge產生mkv檔,也可以看mkv影片檔資訊

用mkvinfo或者mkvmerge都可以看到你要分離的字幕在第幾個tracks

mkvinfo的情況 ,似乎code page不同,新版的mkvinfo在中文console下有些問題,所以改用gui
K:mkv>mkvinfo -g 鋼1.mkv
…(略)
(MKVInfo) | + A track at 397
(MKVInfo) |  + Track number: 3 at 400
(MKVInfo) |  + Track UID: 1051997168 at 403
(MKVInfo) |  + Track type: subtitles at 410
(MKVInfo) |  + Codec ID: S_TEXT/ASS at 413
(MKVInfo) |  + CodecPrivate, length 1254 at 425
(MKVInfo) |  + Language: chi at 1683
(MKVInfo) |  + Lacing flag: 0 at 1690
(MKVInfo) | + A track at 1693
(MKVInfo) |  + Track number: 4 at 1696
(MKVInfo) |  + Track UID: 449712430 at 1699
(MKVInfo) |  + Track type: subtitles at 1706
(MKVInfo) |  + Codec ID: S_TEXT/ASS at 1709
(MKVInfo) |  + CodecPrivate, length 1254 at 1721
(MKVInfo) |  + Default flag: 0 at 2979
(MKVInfo) |  + Language: tai at 2982
(MKVInfo) |  + Lacing flag: 0 at 2989

mkvmerge的情形

C>mkvmerge -i 鋼1.mkv
File ‘鋼1.mkv’: container: Matroska
Track ID 1: video (V_MS/VFW/FOURCC, XVID)
Track ID 2: audio (A_MPEG/L3)
Track ID 3: subtitles (S_TEXT/SSA)
Track ID 4: subtitles (S_TEXT/SSA)

完整顯示出該影片資訊,知道我們要的是chi字幕,另一種國別寫法是zho,也是中文

分離字幕的指令
C>mkvextract tracks 鋼1.mkv -c UTF-8 3:1.ssa
Extracting track ID 3 to a SSA/ASS file ‘1.ssa’.
progress: 100%

在utf-8後面的3是track後面是你自己命名的字幕檔名
因為不加utf-8這個參數分離出來的字幕檔會變亂碼
在這裏有兩個字幕,4是泰文,可利用mmg看一下

完整的分離影片應為mkvextract tracks 鋼1.mkv -c UTF-8 3:1.ssa 1:1.avi 2:1.mp3

接下來可用notepad等編輯,注意為utf-8格式
若是純文字檔請存成.srt
若為簡體中文,可利用ConvertZ這套軟體去轉換為繁體,可批次處理,很快。
由於用ssa字幕大小格式還要調整,最好用Sub Station Alpha這套軟體編輯,手動編輯怪
怪的,後來我直接轉成srt檔,字幕反而比較清楚。
python ssa2srt.py 1.ssa > 1.srt
字幕也有可能是idx等等,請自行找到對應的程式處理

最後用mmg製成mkv檔,將1.avi、1.mp3和1.srt加入即可,請注意以下兩點
1. 字幕的語系請選zho或是chi,為中文
2. Subtitle Charset用此方式編碼為UTF-8,但經過ConvertZ轉換,則為Big5或是CP950,請多加注意。
即可用media player classic播放
若使用命令列格式,可批次處理,由於個案不同,請參考mmg產生的command line
本例子為
C>mkvmerge -o 鋼1.mkv  –default-track 0 -d 0 -A -S 1.avi –default-track 0 -a 0 -D -S 1.mp3 –sub-charset 0:UTF-8 –language 0:zho –default-track 0 -s 0 -D -A 1.srt –track-order 0:0,1:0,2:0

其實步驟不多,只有3~4步,可寫成批次檔。請多推廣正體中文。

本篇發表於 電腦和網際網路。將永久鏈結加入書籤。

2 Responses to mkv字幕分離與重製

  1. Unknown 說道:

    我有一個mkv檔,其字幕軌資訊如下(MKVInfo) | + A track at 4493(MKVInfo) | + Track number: 3 at 4496(MKVInfo) | + Track UID: 539550318 at 4499(MKVInfo) | + Track type: subtitles at 4506(MKVInfo) | + Default flag: 1 at 4509(MKVInfo) | + Lacing flag: 0 at 4512(MKVInfo) | + MinCache: 0 at 4515(MKVInfo) | + Timecode scale: 1.000000 at 4519(MKVInfo) | + Codec ID: S_TEXT/ASS at 4527(MKVInfo) | + CodecPrivate, length 2558 at 4539(MKVInfo) | + Language: und at 7101(MKVInfo) | + Name: CHINESE_GB at 7108(MKVInfo) | + A track at 7121(MKVInfo) | + Track number: 4 at 7124(MKVInfo) | + Track UID: 2701549732 at 7127(MKVInfo) | + Track type: subtitles at 7134(MKVInfo) | + Default flag: 0 at 7137(MKVInfo) | + Lacing flag: 0 at 7140(MKVInfo) | + MinCache: 0 at 7143(MKVInfo) | + Timecode scale: 1.000000 at 7147(MKVInfo) | + Codec ID: S_TEXT/ASS at 7155(MKVInfo) | + CodecPrivate, length 2567 at 7167(MKVInfo) | + Language: und at 9738(MKVInfo) | + Name: CHINESE_BIG5 at 9745(MKVInfo) |+ EbmlVoid (size: 1024) at 9760(MKVInfo) |+ Cluster at 10787那要如何分解出來?是過了很多方法,結果都是亂碼。懇請鳥毅版大賜教

  2. 冠儒 說道:

    因為目前找到一個英文字幕的檔案,打算自己做一個中文字幕.
    可是有點恐懼抽取跟加入字幕的時間可能會太久不知道是不是像轉檔案格式一樣久?所以想請問抽取字幕的時間大約是多久呢?又加入字幕的時間是多久呢?如果我放棄加入字幕直接做一個中文字幕檔,也可以用vobsub外掛穫得字幕的效果嗎?煩請解答 <(_ _)>

發表留言