劉炳芳
南京特殊教育職業(yè)技術(shù)學(xué)院 江蘇 210038
首先澄清一個(gè)誤區(qū),MKV(全稱(chēng)為Matroska)不是一種壓縮格式,MKV是一種多媒體封裝格式,多媒體封裝格式還有一個(gè)稱(chēng)呼叫媒體容器,它不同于DivX、MP3這類(lèi)編碼格式,它只是為多媒體編碼提供的一個(gè)“外殼”,常見(jiàn)的AVI、VOB、MPEG、RM格式都是屬于這種類(lèi)型,它們可以容納多種類(lèi)型的視頻編碼和音頻編碼。而DivX、XviD、YUV、VP6等視頻編碼才是視頻壓縮格式,PCM、MP3、AC3、Ogg等才是音頻壓縮格式。舉個(gè)例子就比較容易理解了,把只有視頻的XviD和只有音頻的mp3組合起來(lái),然后以一種多媒體介質(zhì)的形式出現(xiàn),最常見(jiàn)的就是AVI,其次就是OGM,還有mp4等不太常見(jiàn)的多媒體封裝格式。AVI的出現(xiàn)已經(jīng)超過(guò)了10年,漸漸體現(xiàn)出老態(tài)了,除了近年通過(guò)VD可以擁有兩個(gè)音軌,沒(méi)有其他的改進(jìn)。OGM的出現(xiàn),標(biāo)志著多音軌格式的出現(xiàn),可以合成8個(gè)以上的音軌,音頻上自然也多了OGG這個(gè)格式,重要的是可以“內(nèi)掛”字幕,老外稱(chēng)為“軟字幕”,可以任意開(kāi)關(guān),可以“內(nèi)掛”8個(gè)以上的字幕,美中不足的是僅僅支持srt格式,并且不支持Unicode,對(duì)亞洲字符支持嚴(yán)重不足。還有一個(gè)就是Chapter功能,可以自定義段落,播放時(shí)就可以自由選擇了。是不是越來(lái)越像DVD啦?但是當(dāng)時(shí)的OGM源碼是不公開(kāi)的,就那么幾個(gè)人在開(kāi)發(fā),自然進(jìn)度慢了,前一陣幾乎陷入了“死亡”。最近宣布公開(kāi)源碼,加入Open Source行列,重新開(kāi)始開(kāi)發(fā)。MKV就是在OGM停滯的那段時(shí)間出現(xiàn)的,由俄羅斯的程序員開(kāi)發(fā)的,從一開(kāi)始就是Open Source,因此得到了很多其他程序員的幫助,開(kāi)發(fā)速度相當(dāng)快。OGM有的MKV都有,另外還有很多獨(dú)特的功能。其中最令人振奮的就是Gabest(開(kāi)發(fā)vobsub的公司)開(kāi)發(fā)的Plugin,不僅開(kāi)發(fā)了專(zhuān)門(mén)的播放器(Media Player Classic,MPC),還開(kāi)發(fā)了很多的MKV用的Mux(合成器),尤其是Real格式的Mux。Real的RMVB是封閉格式,官方的Helix根本就不支持多聲道,所以盡管算法很優(yōu)秀,但在聲效大片的再現(xiàn)上就無(wú)能為力了,只能乖乖讓位給可以合成AC3和DTS的AVI以及OGM了。但Gabest開(kāi)發(fā)的Realmedia Splitter和MKV Mux可以讓rmvb格式的視頻和AC3、DTS合成MKV,從根本上克服了rmvb音頻上的弱點(diǎn)。不僅如此,還開(kāi)發(fā)了VSFilter.dll和SubtitleSource.ax這兩個(gè)Plugin,宣布支持ssa和ass的格式軟字幕。
Mkvtoolnix是目前功能最齊全的Matroska合成器,除了WMV和MPEG-1/2之外,它幾乎能將所有的媒體合成到MKV中去。
Mkvtoolnix解壓之后,還要將Mkvtoolnix Runtime Package也一并解壓到Mkvtoolnix所在的目錄中,否則它是無(wú)法運(yùn)行的。Mkvtoolnix的主程序mkvmerge.exe是命令行程序,不過(guò)這個(gè)軟件包中還提供了一個(gè)GUI外殼程序mmg.exe,可運(yùn)行它來(lái)對(duì)mkvmerge.exe進(jìn)行操作。
運(yùn)行mmg.exe后,會(huì)彈出軟件的圖形界面,首先選擇“Input”選擇卡,點(diǎn)擊上部“Input files”處的“add”按鈕,將要合并的視頻、音頻、字幕文件一一添加到文件列表中,Mkvtoolnix功能的強(qiáng)大主要體現(xiàn)在能導(dǎo)入的格式上,除了MPEG視頻外,幾乎所有的主流音、視頻格式它都能容納,包括OGM和MKV格式本身!如圖1。
圖1 Mkvtoolnix文件導(dǎo)入設(shè)置
如果視頻中已經(jīng)包括有音頻,它還可以選擇是保留還是不保留該音頻!如果要去掉原有的音頻,先在文件列表中選中該視頻文件,然后在下面的Tracks列表中將音軌前的勾去掉即可。這樣的功能要比OGM方便得多!所有的軌道都可以加上語(yǔ)言類(lèi)型、標(biāo)題、作者等標(biāo)示,先選定某個(gè)軌道,然后在下面“Track Options”處的“Language”下拉列表中進(jìn)行選擇。在字幕或聲音不同步的情況下,還可設(shè)置聲軌和字幕播放的延時(shí)時(shí)間,可將延時(shí)數(shù)值填入Delay后的文字框(單位為毫秒)。
如果想將合并好的MKV文件刻入光盤(pán),而最終合并好的文件可能超過(guò)光盤(pán)的容量的話(huà),你可以對(duì)文件進(jìn)行分割。選擇“Global(全局)”選項(xiàng)卡,在其中的“Split(分割)”欄中勾選“Enable splitting(進(jìn)行分割)”,分割有兩種方式:“by size(按文件尺寸)”、“by time(按時(shí)間)”,這里當(dāng)然應(yīng)該按尺寸,具體的尺寸可從后面的下拉列表中選擇(如圖2)。
界面中的其它選項(xiàng)卡都是無(wú)關(guān)緊要的,可以不管。最后,在下面的“Output filename”(輸出文件名)處設(shè)置輸出文件的路徑及名稱(chēng)后,點(diǎn)擊“Start Muxing”(開(kāi)始合并)按鈕輸出MKV文件。另外,Mkvtoolnix也可用于分離MKV文件,只要將MKV文件導(dǎo)入,再將每個(gè)碼流單獨(dú)命名輸出就行了。
圖2 Mkvtoolnix文件分割設(shè)置
Mkvtoolnix不能將ASF、WMV合并到MKV中,這個(gè)任務(wù)要由asf2mkv recorder完成。運(yùn)行asf2mkv recorder,在軟件窗口的地址欄中輸入源文件的完整路徑(也可復(fù)制),然后單擊“Record!”按鈕,會(huì)彈出另存為對(duì)話(huà)框,在其中設(shè)置好MKV文件保存的路徑及名稱(chēng)后即可輸出MKV文件。asf2mkv recorder只是簡(jiǎn)單的將ASF、WMV文件轉(zhuǎn)換成MKV文件,不能合成多種音頻,更不能合入字幕。不過(guò),這種包含Windows Media的MKV文件已經(jīng)可以用Mkvtoolnix進(jìn)行處理了,要做到這些自然也不困難。
目前可做MKV格式視頻采集的程序有兩個(gè),一個(gè)是VirtualVCR,一個(gè)是Media Player Classic,其中以前者的功能最為強(qiáng)大。Virtual VCR帶有功能完善的電視調(diào)諧器,可方便的采集包括電視在內(nèi)的模擬視頻源。用普通的VirtualVCR版本是不能采集MKV視頻的,必須使用VirtualVCRMatroska版。
運(yùn)行VirtualVCR,在其主界面工具欄中單擊設(shè)置按鈕,會(huì)彈出“Settings”對(duì)話(huà)框,首先選擇“Devices(設(shè)備)”選項(xiàng)卡,在“Device Selection”欄中選擇視頻(如Philips Proteus7130電視卡)及音頻采集設(shè)備。然后選擇“Video Source(視頻源)”,共有三個(gè)選項(xiàng)“Video Tuner”即電視調(diào)諧器,“Video Composite”即AV復(fù)合端子,“Video Svideo”即S端子,如果要采集電視就選擇“Video Tuner”。
如果采集電視,要對(duì)電視調(diào)諧器進(jìn)行設(shè)置。選擇“Tuner”選項(xiàng)卡,單擊“TV Tuner Device”(電視調(diào)諧設(shè)備)按鈕,會(huì)出現(xiàn)電視調(diào)諧器屬性面板,在這里要設(shè)置好電視接收的國(guó)家代碼(中國(guó)為86)及視頻制式,視頻制式可選擇PAL-B。完成然后回到“Tuner”選項(xiàng)卡中,單擊“Scan”按鈕,開(kāi)始掃描電視頻道。掃描出的電視頻道會(huì)出現(xiàn)在左邊的列表中,雙擊某個(gè)數(shù)字就會(huì)播放某個(gè)頻道。這一步只在采集電視節(jié)目時(shí)需要設(shè)置,如果采集來(lái)自AV端子和S端子的視頻則無(wú)需理會(huì)這里的設(shè)置。
選擇“Video”選項(xiàng)卡,首先選定“Use Custom Settings”復(fù)選框,然后設(shè)置其“Frame Size”(幀尺寸),尺寸及視頻的分辨率,可根據(jù)機(jī)器的性能來(lái)設(shè)置,如果機(jī)器的性能強(qiáng)勁,可設(shè)置為640×480(由于電視的質(zhì)量不太高,更高的分辨率意義并不大)。“Frame Rate”(幀率)決定了視頻是否連貫,一般在25FPS就行了。下面的“Use Compression”也應(yīng)該勾選,這樣你就可以使用MPEG-4類(lèi)的Codec來(lái)進(jìn)行編碼了。視頻Codec建議選擇 DivX Pro 5.1.1,它的編碼速度要比同類(lèi)的Codec快一些,這樣可保證盡量少掉幀。點(diǎn)擊“Prop”按鈕可設(shè)置編碼Codec的參數(shù),主要是碼率的設(shè)置,一般根據(jù)畫(huà)面的分辨率來(lái)設(shè)置就行了,但如果采用較高分辨率,還需要將畫(huà)面做消除interlace(隔行)處理,但這需要你的電腦非常強(qiáng)勁才行。
選擇“Audio”選項(xiàng)卡,選定其中的“Capture Audio”(采集音頻)和“Compress Audio”(壓縮音頻)兩個(gè)復(fù)選框,然后“Compress Audio”選擇合適的音頻編碼。因?yàn)槭菍?shí)時(shí)采集,它對(duì)音頻編碼的要求比較苛刻,MP3肯定不行,因?yàn)樗鼤?huì)用很多CPU資源。最好使用Windows Media Audio V2,參數(shù)設(shè)置為44.1KHz,64~128Kbps,Stereo,這樣可兼顧音頻文件的質(zhì)量、速度與體積。
最后選擇“File”對(duì)話(huà)框,設(shè)置采集文件的名稱(chēng)及保存的路徑?!癝etting”對(duì)話(huà)框中還有一個(gè)“Stop”選項(xiàng)卡是用于設(shè)置采集的停止條件的(如時(shí)間和剩余硬盤(pán)大?。?。所有的設(shè)置完成后,即可回到主界面進(jìn)行采集。
在主界面中單擊工具欄“錄制”按鈕,即可進(jìn)行采集,采集時(shí)你可按下工具欄中的“Toggle Stats”按鈕,打開(kāi)“Stats”面板,查看有關(guān)的采集數(shù)據(jù),如非常關(guān)鍵的丟幀數(shù)量,丟幀數(shù)量通常應(yīng)該在總幀數(shù)的2~3%以下,否則會(huì)讓人覺(jué)得很不流暢。如果丟幀太多,可適當(dāng)降低采集參數(shù)(分辨率、碼率)。Matroska的發(fā)展速度相當(dāng)快,它未來(lái)的目標(biāo)是要使文件具備流媒體特性,可通過(guò)HTTP及RTP協(xié)議進(jìn)行流式傳輸,另外為這種格式增加一種類(lèi)似DVD菜單的功能也納入了下一步的發(fā)展計(jì)劃。當(dāng)這些計(jì)劃完成后,我們可以看到一個(gè)功能更強(qiáng)大,更全面的多媒體封裝格式。
[1]http://www.mtime.com/my/rayinhere/blog/1049305/.
[2]http://k.pconline.com.cn/question/856096.html.2010.
[3]http://blog.zol.com.cn/573/article_572889.html.
[4]頭重腳輕.草根也能稱(chēng)王,萬(wàn)能媒體容器MKV[J].電腦迷.2008.
[5]http://sdzh.1001a.com/skill/200905/49306.html.