MKV on MacOSX - MAC

Table of Contents

首先先說 Windows上有很多可以對付mkv格式的東西

所以可以考慮換系統來處理

如果你堅持要在MacOSX下弄這件事情 請繼續看下去:


如同我之前某一篇文章所說

mkv並不是影片格式 而是一種封裝格式

也就是說 他是可以把多種影片 聲音 字幕等等壓成一個檔案的格式

方便性在於 你可以一部片錄雙語發音 多國字幕 需要時可以選擇叫哪個

但是發出去的檔案卻只有一個.mkv檔

所以可以理解的是 mkv裡面可能包含各種不同格式的影片



MacOSX上通常會遇到的事情

就是怎麼播這個mkv 還有怎麼把這個mkv轉檔

以播放來說 MPlayer和VLC支援mkv

但前提是"mkv裡面包的影片格式"是他們可以讀的

就我碰到的格式來說 目前如果mkv裡面的影片是用real media壓成

因為只有MPlayer可以加裝codec來播放

所以如果mkv裡面壓了real media 那只有MPlayer開得起來

(之前即使是MPlayer也不行 但新版本似乎修正了這個問題了)

http://www.mplayerhq.hu/design7/dload.html 這是MPlayer的官網

可以抓到新版的執行檔

要播real media 下面有些Binary Codec Packages

看你的機器 PPC的請載Mac OS X PPC 20041107的 Intel的請載Mac OS X x86 20060611

裝完後你的MPlayer就可以打開rm rmvb之類的東西了 效能很不錯喔!

不過MPlayer似乎有時無法應付mkv的特殊功能 像字幕切換和章節切換




接下來講怎麼轉檔

既然說mkv是把東西封裝起來

那轉檔的第一步就是把它"解開"

這個工具叫做mkvtoolnix

可以在http://www.bunkus.org/videotools/mkvtoolnix/downloads.html 找到

安裝很容易 只是裝完你會很納悶...啊是裝到哪了?!

哈 這東西只有文字介面啦 所以你必須在終端機下指令來執行它

如果你還沒反悔要投向Windows的懷抱的話 那我們繼續看下去~




搞清楚你的mkv檔案在哪

打開終端機

輸入這行指令:

/usr/local/bin/mkvmerge -i 你的mkv檔完整路徑

假設我的mkv檔叫做Target.mkv 放在家目錄下

那我的指令就是

/usr/local/bin/mkvmerge -i ~/Target.mkv

執行後它會顯示這個mkv檔裡面到底壓了什麼?

以我為例 它顯示的是這樣:


File '/Users/Pluto/Target.mkv': container: Matroska
Track ID 1: audio (A_REAL/COOK)
Track ID 2: video (V_REAL/RV40)
Track ID 3: subtitles (S_VOBSUB)
Track ID 4: subtitles (S_VOBSUB)
Track ID 5: subtitles (S_VOBSUB)
Track ID 6: subtitles (S_VOBSUB)

這就表示 我的mkv檔裡面有6樣東西

第一個是聲音 也就是audio 他的格式是real media

第二個是影像 也就是video 他的格式是real media

第三~第六個 都是字幕 也就是subtitles


既然知道他包了什麼 那就把他解出來囉

指令是這樣的:

/usr/local/bin/mkvextract tracks "mkv檔完整路徑" 第幾track:輸出檔案完整路徑

對我來說 我要解的是影像和聲音 要解的track 1的聲音 還有track2的影像

並且要解在同一個檔案裡

假設我要把輸出檔案存在家目錄下 取名叫Output.rmvb (real media嘛...)

那指令就是這樣打:

cd ~/
再打
/usr/local/bin/mkvextract tracks "./Target.mkv" 1:./Output.rmvb 2:./Output.rmvb

不用之前的~/是因為mkvextract似乎不認得~/

(~/表示家目錄 ./表示當前目錄)

所以先來到家目錄(cd ~/) 再改用./當路徑 因為我不喜歡打太長的指令XD

成功的話mkvextract就會開始運作

並顯示以下訊息:


Extracting track 1 with the CodecID 'A_REAL/COOK' to the file './Output.rmvb'.
Container format: RMFF (RealMedia File Format)
Extracting track 2 with the CodecID 'V_REAL/RV40' to the file './Output.rmvb'.
Container format: RMFF (RealMedia File Format)
progress: 100%


那個progress就是完成進度 等他跑到100%就是完成了

就可以去家目錄找你的檔案囉~

當然 要取出字幕也是類似的作法

之後要轉檔的話 就看你是什麼格式 找對應的軟體來處理

例如rmvb的話 請找板主大人的文章

轉iPod格式的 我喜歡用isquit


如果熟悉shell script或是喜歡用Automator的

可以考慮作一個批次處理的程序 一次轉完一堆檔案XD

mkvtoolnix其實也還有不少指令和參數可以搭配

有興趣可以去看看它的說明

有強者願意來把他包成GUI當然是最好的啦...XD

--
◢███
◤ ◢◤
◢███ ◢██ ◢███
◢◤ ◢◤
◢███ ◢█ ◢███


--

All Comments

Blanche avatarBlanche2008-01-10
推教學
Lily avatarLily2008-01-11
推!!
Dorothy avatarDorothy2008-01-16
Catherine avatarCatherine2008-01-16
推廢話很多的教學XD
Cara avatarCara2008-01-18
推 好文
Isabella avatarIsabella2008-01-19
nogard你好樣的...
Catherine avatarCatherine2008-01-24
大大推 感謝 我覺得似乎沒有比在pc上麻煩@@
Cara avatarCara2008-01-29
我以為PC上只要WinMenc就直接轉好了@@
Bennie avatarBennie2008-01-29
還可以順便學指令跟理論~水哦
Kama avatarKama2008-02-02
那個 有人測試成功或有問題麻煩回報
Bennie avatarBennie2008-02-03
推一個~好教學文章!
Caroline avatarCaroline2008-02-05
補推
Lydia avatarLydia2008-02-07
之後會用來轉Friends再推 真是歷久彌堅的文章XD
Lauren avatarLauren2008-02-08
video、audio轉檔靠ffmpeg這個套件就夠了
$ ffmpeg -i input.mkv output.mp4
Stream #0:1 -> #0:0 (rv40 -> libx264)
Stream #0:0 -> #0:1 (cook -> libfaac)
Mason avatarMason2008-02-09
字幕再用mkvextract來擷取