半夜睡不著覺,乾脆把昨天我花了一整天研究的影片轉檔方式與大家分享一下
首先,要說明的是我為啥要做MKV轉RMVB的原因
簡單的說,就是老媽最近熱衷於大陸劇,而我在對岸的V站幫他抓了一卡車
本來想說他是要用NB看的,沒想到他想要用電視看(對於50歲左右的爸爸媽媽們就是覺得要用電視而不是什麼外接螢幕之類的)
他自己也很厲害,去弄了個最近越來越紅的RMVB播放器(不知道的可以參考一下
這裡)
他買的機器就跟連結中的幾乎一樣(型號不同,但大多數功能與支援格式相同)
而剛好現在連續劇大多都是RMVB,所以我娘也看的不亦樂乎
但好死不死,就是有幾片他想看的我只抓到MKV(全部都是h.264+AAC的格式),而上述的那台機器偏偏不吃MKV,所以勢必要轉檔
眼尖的大大應該發現了...那種機器全部都支援DIVX 4/5/6 or Xvid 的編碼,要轉這兩種格式非常的簡單(直接丟進
TmpegEnc Xpress 4選好格式以後點幾下就出來了,畫質又好,速度也快,只是檔案會膨脹約25%(會因為設定差異而改變))
為啥我不這樣做???因為..............我無聊
好,不廢話了
接下來就有請GOOGLE大神幫我神一下需要的軟體
第一個使用的就是RealMedia自家的 Easy RealMedia Tools (
相關介紹)
我非常直覺地就直接用裡面的Easy Realmedia Producer(網路上都叫他ERP...可是我都會把他跟公司裡面的SAP想在一起...)直接丟進去轉
結果..........如果順利的話我就不會寫這篇了.....他瞬間就「處理」完畢 然後什麼都沒有輸出,而我在他的log檔中看到的資訊是
Warning File Reader 2009/12/20 05:12:12 8107 Neither uncompressed audio or video was available in DirectShow Reader
Error File Reader 2009/12/20 05:12:12 8406 Failed to load QuickTime libraries. QuickTime 5 or later is required.
Error File Reader 2009/12/20 05:12:12 8322 Unexpected file format, X:\111.mkv may be a flat file.
Error SDK Configuration 2009/12/20 05:12:12 0 Failure to load reader for file X:\111.mkv
Error SDK Configuration 2009/12/20 05:12:12 0 Unable to initialize input
裡面竟然說啥要QuickTime?我用mediainfo看明明就是h.264+aac的格式...所以直接不管這行
而裡面的第一行與第三行給了我一些些的線索,也就是第一行所說「DirectShow Reader找不到未壓縮的聲音或影像」以及第三行「 may be a flat file」
於是我想起了MKV算是一種「容器」,他可以把很多種編碼的聲音、影像或是字幕「包裝」在一個檔案中,而ERP的log裡面的意思可能就是他不會「拆包裝」所以沒辦法處理
所以接下來我必須先幫他拆開MKV 再想辦法丟進去,這分為兩個動作......1.分開 2.丟給ERP
先從第一個步驟說起
1.拆解MKV
要拆MKV,就用MKVFileTool加上MKVExtractGui這兩個東西(
這裡有繁中免安裝版本)
使用MKVextractGUI.exe 將MKV讀入
注意下圖中中間視窗顯示的就是這個MKV中包含的內容與格式,包括影像、聲音與字幕
我要抓的只有第二個aac (原因後述)
勾選後按下提取...速度很快(可能是我電腦的問題,按下提取後程式會hang住幾秒才動作)
接下來就是丟給ERP轉的事情了(第二步驟)
2.ERP的讀入與轉檔
要讓ERP能夠吃的下我分解的聲音,必須使用
AviSynthrameserver讓他可以同時吃下影像、聲音以及字幕(我用的是2.6.0 alpha2)
而為了讓AviSynth能夠處理aac格式的音源,必須使用BassAudio Decoder做外掛
下載
BeHappy20091012.7z打開裡面有個plugin資料夾,把裡面所有檔案通通丟到AviSynth安裝資料夾中的plugin資料夾中
接下來,打開文字編輯器,輸入下面框框內的指令(此範例並沒有做任何特殊的影像處理,也沒有放字幕,因為該檔案的字幕檔只是字幕組的****而已,所以想學習語法的大大們在網路上非常容易找到相關教學,小弟僅是初學者,就不在此獻醜了)
=====================
video=DirectShowSource("E:\EM\test.mkv", fps=30, convertfps=true, audio=false)
audio= BassAudioSource("E:\EM\test_Track2.aac")
AudioDub(video, audio)
=====================
存檔為test.avs(副檔名必為avs)
範例中的檔案路徑就請有需要的大大自行修改成自己所需要的
而在指令的第一行中影像的來源我用的是原始MKV,原因是如果我用MKVExtractGUI把裡面的h.264提取出來用的話,ERP會轉不出來,而直接吃反而可以(後來去查才知道副檔名為h264是影像的RAW檔,一定要經過封裝才能播放)
在此先得到一個問題的解答:之前丟整個MKV會失敗應該就是ERP不會處理aac而不是影像的h.264有問題
最後,打開ERP,檔案來源就選這個avs檔...輕輕在「開始編碼」點下左鍵...稍待片刻...成功
-------------------------------------------------------------
後記
我轉換一個MKV檔(h.264+aac 影片解析度624*384檔案大小144MB 影片長度約42分鐘)為rmvb(ERP內的所有設定都維持預設)轉換後的檔案大小為155MB,ERP所用時間為9分半左右
轉換後的影片銳利度有極些微的下降,應該是我沒有在AviSynth中使用其他濾鏡功能
以下順便說明一下小弟的軟硬體相關環境給各位做參考與對照
硬體
Q6600 oc 3.2G
Asus P5Q-E
4GB ddr2 at ddr800K-lite
VGA 技嘉 3870 512超頻版
相關軟體環境
XP pro SP3 32bit
klite Mega codec 5.5.1
Easy RealMedia Tools (RealMedia Editor V1.73 RealMedia ProducerV1.94)
MkvToolnix v2.2.0+MKVextractGUI v1.6.4.1 (見上面載點)
AviSynth
所有連結內的檔案之著作權均屬於原創作者,本人僅為轉貼
最後,請各位大大不吝指教與分享,謝謝