mkv

mkv

Matroska多媒體容器(Multimedia Container)是一種開放標準的自由的容器和文件格式,是一種多媒體封裝格式,能夠在一個文件中容納無限數量的視頻、音頻、圖片或字幕軌道。所以其不是一種壓縮格式,而是Matroska定義的一種多媒體容器文件。其目標是作為一種統一格式保存常見的電影、電視節目等多媒體內容。在概念上Matroska和其他容器,比如avi、MP4或ASF(Advanced Sreaming Format,即高級流格式)比較類似,但其在技術規程上完全開放,在實現上包含很多開源軟體。可將多種不同編碼的視頻及16條以上不同格式的音頻和不同語言的字幕流封裝到一個Matroska 媒體文件當中。最大的特點就是能容納多種不同類型編碼的視頻、音頻及字幕流。

mkv不同於DivX、XviD等視頻編碼格式,也不同於MP3、Ogg等音頻編碼格式。MKV是為這些音、視頻提供外殼的“組合”和“封裝”格式。換句話說就是一種容器格式,常見的 DAT(是VCD的一種編碼格式)AVl、VOB、MPEG、RM 格式其實也都屬於這種類型。但它們要麼結構陳舊,要麼不夠開放,這才促成了MKV這類新型多媒體封裝格式的誕生。

Matroska的文件擴展名,對於攜帶了音頻、字幕的視頻文件是.MKV;對於3D立體影像視頻是.MK3D;對於單一的純音頻文件是.MKA;對於單一的純字幕文件是.MKS。

特點


Matroska最大的特點就是能容納多種不同類型編碼的視頻、音頻及字幕流,甚至囊括了RealMedia及QuickTime這類流媒體,可以說是對傳統媒體封裝格式的一次大顛覆!它現在幾乎變成了一個萬能的媒體容器,目前它所能封裝的視頻、音頻、字幕類型包括:
MKV標誌
MKV標誌
AVI文件,包括採用DivX、XviD、3ivX、VP6視頻編碼,及PCM、MP3、AC3等音頻編碼的AVI
RealMedia文件,包括RealVideo和RealAudio
QuickTime的MOV及MP4視頻
Windows Media文件,包括ASF、WMV格式
MPEG文件,包括MPEG-1/2的M1V、M2V
Ogg/OGM 文件,包括Ogg Vorbis、OGM、FLAC文件
Matroska Media文件,包括MKV、MKA、MKS文件
WAV、AC3、DTS、MP2、MP3、AAC/MP4音頻
SRT、USF及SSA/ASS文本字幕
SubVob圖形字幕,後綴為IDX、SUB
BMP圖形字幕,以一組BMP圖片及時間碼構成的字幕。
此外,Matroska文件中還可包括章節、標籤(Tag)等信息,甚至還可加上附件!需要指出的Matroska所謂的封裝AVI、RM、MOV等媒體,但它並不是簡單將它們不加改變的合併到Matroska中,而是將它們的音視頻流進行了重新組織。
Matroska加入AVI所沒有的EDC錯誤檢測代碼,這意味著即使是沒有下載完畢的MKV文件也可以順利回放,這些對AVI來說完全是不可想象的。雖然Matroska加入了錯誤檢測代碼,但由於採用了新的更高效的組織結構,用MKV封裝后的電影還是比AVI源文件要小了約1%,這就是說即使加上了多個字幕,MKV文件的體積也不可能比AVI文件大。
Matroska支持可變幀率(VFR,即Variable Frame Rate)的視頻編碼,這種VFR視頻的幀率是不固定的,它可在動態畫面中使用較大的幀率,而在靜態畫面中使用較小的幀率,這樣可以有效的減少視頻文件的體積,並改善動態畫面的質量。它的作用比目前廣泛使用的VBR(可變碼率)更為明顯。
看看目前比較流行的多媒體容器類型,例如AVI,它可以容納多種類型的視頻編碼和音頻編碼,像VP6、DivX、XviD等視頻編碼和PCM、MP3、AC3等音頻編碼;VOB則是另一種特點更為鮮明的媒體容器,它可容納MPEG-2視頻流、多個AC3、 DTS、THX、PCM音頻流、多個不同語言的圖形字幕流。

兼容性


avi的出現已經超過了10年,漸漸體現出老態了,除了近年通過VD可以擁有2個音軌,沒有其他的改進。
ogm的出現,標誌著多音軌格式的出現,可以合成8個以上的音軌,音頻上自然也多了ogg這個格式,重要的是可以“內掛”字幕,老外稱為“軟字幕”,可以任意開關,可以“內掛”8個以上的字幕,美中不足的是僅僅支持srt格式,並且不支持Unicode,對亞洲字元支持嚴重不足。
還有一個就是Chapter功能,可以自定義段落,播放時就可以選擇了。是不是越來越像DVD啦?但是當時的ogm源碼是不公開的,就那麼幾個人在開發,自然進度慢了,前一陣幾乎陷入了“死亡”。最近宣布公開源碼,加入Open Source行列,重新開始開發。
mkv就是在ogm停滯的那段時間出現的,由俄羅斯的程序員開發的,從一開始就是Open Source,因此得到了很多其他程序員的幫助,開發速度相當快。
ogm有的mkv都有,另外還有很多獨特的功能。其中最令人振奮的就是Gabest(開發vobsub的公司)開發的Plugin,不僅開發了專門的播放器Media Player Classic(俗稱MPC),這個東西的強大相信用過的人都有體會。還開發了很多的MKV用的Mux(合成器),尤其是Real格式的Mux。 Real的rmvb是封閉格式,官方的Helix根本就不支持多聲道所以儘管演演算法很優秀,但在聲效大片的再現上就無能為力了,只能乖乖讓位給可以合成AC3和DTS的avi以及ogm了。
但Gabest開發的Realmedia Splitter和mkv Mux可以讓rmvb格式的視頻和AC3、DTS合成mkv,從根本上克服了rmvb音頻上的弱點。不僅如此,還開發了VSFilter.dll和SubtitleSource.ax這2個Plugin,宣布支持ssa和ass的格式軟字幕。
總結就是下面幾條:
1.支持多種格式的視頻和音頻,尤其是Real ;
2.支持多音軌,多達16條以上;
3.支持ssa,ass軟字幕,多達16條以上;
4.支持段落選取(由製作人決定) 。

發展前途


Matroska的目標就是要取代舊式的媒體封裝格式,其中最主要的目標就是AVI。 AVI已經誕生十幾年了,目前它依然還保持著旺盛的生命力,但其原始架構過於陳舊,這使得它在支持新的音視頻編碼上非常困難,在非微軟平台使用也不夠方便。而Matroska使用的是一種開放的架構,擁有眾多的先進特性,並且能跨平台使用,這是AVI所望塵莫及的。
不過AVl畢竟樹大根深,它擁有最廣泛的軟硬體支持,而這一點正是衡量MKV是否成功的一個標誌,但目前它還做不到這點,現在甚至還沒出現一個能直接編輯它的軟體。但在這麼短的時間裡,Matroska取得的進展也是非常引人注目的。
但Matroska畢竟還是一種發展中的技術,它沒有深厚的背景可以依託,這決定了它不可能在商業領域(如DV、數字電視)里有所作為,同樣的道理,它要想取代 AVI成為一種通用的多媒體封裝格式並不會十分順利。不過,DVDRip的普及歷程告訴我們,流行才是硬道理!DVD播放機廠商現在不是也已經放下架子,對DVDRip提供支持了么。所以,Matroska目前最需要做的就是讓更多的人知道它。
MKV的目標
建立一個現代、靈活、延伸性、多平台的網際網路伺服器,快速查找文件;發展一套創作和編輯用的Matroska文件工具,並在GNU通用公共許可證下發布;開發一個網路圖書館,允許開發者向Matroska申請,將他們自行開發的應用軟體加入Matroska音頻格式,並在GNU寬通用公共許可證下發布;與硬體製造商合作,把他們的音頻格式嵌入多媒體的設備里;支授以Matroska在各種各樣的操作系統(包括Windows、DirectShow、Linux、Haiku和多媒體處理框架GStreamer)的運作。

使用指南


播放

播放Matroska這類格式並不需要專用的播放器,任何DirectShow的播放器都可以播放MKV、OGM、MP4文件,如常見的Media player Classic、BSplayer、ZoomPlayer播放器等,甚至包括Windows Media player。僅需安裝相應 Matroska 解碼分離器插件即可。
現有的播放器要播放MKV格式僅需安裝相應的分離器插件即可。

製作

從DVD到MKV——用VirtualDubMod合成MKV
VirtualDubMod是VirtualDub的一個變種,它可以直接將MPEG-2文件編碼成MKV文件,也就是說它可以直接將DVD轉換成MKV視頻。VirtualDubMod也是目前唯一能剪輯MKV視頻的工具。
運行VirtualDubMod,從“File”菜單中選擇“Open Video file”命令,導入DVD中的VOB文件,在導入時會彈出一個音軌選擇對話框,具體選擇哪一條AC3音軌要根據在播放器中的播放情況而定,一般情況下是選擇第一條音軌。
文件導入后按F7鍵設置輸出,在彈出的“Save As”對話框中設置文件名及保存的位置,保存類型要選擇Matroska File(MKV)。接下來在下面的“Video”欄中選擇“Video Mode(視頻模式)”為“Full processing mode(完全處理模式)”,然後單擊“Change”按鈕,會彈出“Select video compression(選擇視頻壓縮)”對話框,你可在這裡選擇DivX 5.1.1、XviD、VP60/61/62等編碼,然後單擊“Configure”按鈕設置編碼參數,碼率一般設置為1200~1500bps,這和製作普通的DVDRip沒有任何區別。完成後即可回到“Save As”對話框,單擊“保存”按鈕進行編碼輸出。
不過VirtualDubMod只能對單個的VOB文件進行編碼,如果要將一整部的DVD編碼成MKV,可能需要對4~5個VOB文件進行編碼。另外,它只能對視頻部分進行編碼,音頻部分則保持不變直接合併到MKV中。對於多個編碼好的MKV文件,你可以從“File”菜單選擇“Append segment(附加片段)”命令將它們逐個進行合併。要對MKV文件進行剪輯也可用VirtualDubMod,這和剪輯普通AVI文件是完全一樣的。
強大的MKV合成工具——MKVtoolnix
Mkvtoolnix是目前功能最齊全的Matroska合成器,除了WMV和MPEG-1/2之外,它幾乎能將所有的媒體合成到MKV中去。
1、安裝及運行
Mkvtoolnix解壓之後,還要將Mkvtoolnix Runtime Package也一併解壓到Mkvtoolnix所在的目錄中,否則它是無法運行的。Mkvtoolnix的主程序mkvmerge.exe是命令行程序,不過這個軟體包中還提供了一個GUI外殼程序mmg.exe,可運行它來對mkvmerge.exe進行操作。
2、文件導入
運行mmg.exe后,會彈出軟體的圖形界面,首先選擇“Input”選擇卡,點擊上部“Input files”處的“add”按鈕,將要合併的視頻、音頻、字幕文件一一添加到文件列表中,Mkvtoolnix功能的強大主要體現在能導入的格式上,除了MPEG視頻外,幾乎所有的主流音、視頻格式它都能容納,包括OGM和MKV格式本身。
3、軌道設置
如果視頻中已經包括有音頻,它還可以選擇是保留還是不保留該音頻!如果要去掉原有的音頻,先在文件列表中選中該視頻文件,然後在下面的Tracks列表中將音軌前的勾去掉即可。這樣的功能要比OGM方便得多。
所有的軌道都可以加上語言類型、標題、作者等標示,先選定某個軌道,然後在下面“Track Options”處的“Language”下拉列表中進行選擇。在字幕或聲音不同步的情況下,還可設置聲軌和字幕播放的延時時間,可將延時數值填入Delay后的文字框(單位為毫秒)。
4、文件分割
如果想將合併好的MKV文件刻入光碟,而最終合併好的文件可能超過光碟的容量的話,你可以對文件進行分割。選擇“Global(全局)”選項卡,在其中的“Split(分割)”欄中勾選“Enable splitting(進行分割)”,分割有兩種方式:“by size(按文件尺寸)”、“by time(按時間)”,這裡當然應該按尺寸,具體的尺寸可從後面的下拉列表中選擇。
5、輸出
界面中的其它選項卡都是無關緊要的,可以不管。最後,在下面的“Output filename(輸出文件名)”處設置輸出文件的路徑及名稱后,點擊“Start Muxing(開始合併)”按鈕輸出MKV文件。另外,Mkvtoolnix也可用於分離MKV文件,只要將MKV文件導入,再將每個碼流單獨命名輸出即可。

轉換

Mkvtoolnix不能將ASF、WMV合併到MKV中,這個任務要由asf2mkv recorder 完成。運行asf2mkv recorder,在軟體窗口的地址欄中輸入源文件的完整路徑(也可複製),然後單擊“Record!”按鈕,會彈出另存為對話框,在其中設置好MKV文件保存的路徑及名稱后即可輸出MKV文件。
asf2mkv recorder只是簡單的將ASF、WMV文件轉換成MKV文件,不能合成多種音頻,也不能合入字幕。不過,這種包含Windows Media的MKV文件已經可以用Mkvtoolnix進行處理了,要做到這些自然也不困難。
MKV Video Converter視頻轉換器是一款易於使用的MKV視頻轉換軟體,可以幫助您轉換MKV到AVI,MKV到iPod,MKV到DVD,並且轉換出優秀的圖象和聲音。通過指定對話的起止時間你就可以剪切DVD的任意一個部分來製成MKV錄像。
該MKV轉換工具,也支持MPEG, MP4, MOV, WMV, WAV, VCD, VOB, PSP etc to MKV(Matroska Video)文件。

刻錄

mkv不同於DivX、XviD等視頻編碼格式,不同於dvd視頻格式,可以刻錄mkv,同時支持加入mkv視頻的獨立外掛字幕(srt)文件。而很多刻錄軟體不支持導入進行刻錄,一般在刻錄前先轉換成mpeg2格式文件。

採集

目前可做MKV格式視頻採集的程序有兩個,一個是VirtualVCR,一個是Media Player Classic,其中以前者的功能最為強大。Virtual VCR帶有功能完善的電視調諧器,可方便的採集包括電視在內的模擬視頻源。
(1)VirtualVCR-Matroska
用普通的VirtualVCR版本是不能採集MKV視頻的,必須使用VirtualVCR-Matroska版,這是一個綠色軟體,直接用WinRAR解壓出來就可以使用了。
(2)設置採集設備
運行VirtualVCR,在其主界面工具欄中單擊設置按鈕,會彈出“Settings”對話框,首先選擇“Devices(設備)”選項卡,在“Device Selection”欄中選擇視頻(如Philips Proteus7130電視卡)及音頻採集設備。然後選擇“Video Source(視頻源)”,共有三個選項“Video Tuner”即電視調諧器,“Video Composite”即AV複合端子,“Video SVideo”即S端子,如果要採集電視就選擇“Video Tuner”。
(3)設置電視調諧器
如果採集電視,要對電視調諧器進行設置。選擇“Tuner”選項卡,單擊“TV Tuner Device(電視調諧設備)”按鈕,會出現電視調諧器屬性面板,在這裡要設置好電視接收的國家代碼(中國為86)及視頻制式,視頻制式可選擇PAL-B。完成然後回到“Tuner”選項卡中,單擊“Scan”按鈕,開始掃描電視頻道。掃描出的電視頻道會出現在左邊的列表中,雙擊某個數字就會播放某個頻道。這一步只在採集電視節目時需要設置,如果採集來自AV端子和S端子的視頻則無需理會這裡的設置。
(4)視頻參數設置
選擇“Video”選項卡,首先選定“Use Custom Settings”複選框,然後設置其“Frame Size(幀尺寸)”,尺寸及視頻的解析度,可根據機器的性能來設置,如果機器的性能強勁,可設置為640×480(由於電視的質量不太高,更高的解析度意義並不大)。“Frame Rate(幀率)”決定了視頻是否連貫,一般在25FPS就行了。
下面的“Use Compression”也應該勾選,這樣你就可以使用MPEG-4類的Codec來進行編碼了。視頻Codec建議選擇DivX Pro 5.1.1,它的編碼速度要比同類的Codec快一些,這樣可保證盡量少掉幀。點擊“Prop”按鈕可設置編碼Codec的參數,主要是碼率的設置,一般根據畫面的解析度來設置就行了,但如果採用較高解析度,還需要將畫面做消除interlace(隔行)處理,這一般需要較高的硬體配置。
(5)音頻參數設置
選擇“Audio”選項卡,選定其中的“Capture Audio(採集音頻)”和“Compress Audio(壓縮音頻)”兩個複選框,然後“Compress Audio”選擇合適的音頻編碼。因為是實時採集,它對音頻編碼的要求比較苛刻,MP3肯定不行,因為它會用很多CPU資源。最好使用Windows Media Audio V2,參數設置為44.1KHz,64~128Kbps,Stereo,這樣可兼顧音頻文件的質量、速度與體積。
(6)文件保存設置
最後選擇“File”對話框,設置採集文件的名稱及保存的路徑。“Setting”對話框中還有一個“Stop”選項卡是用於設置採集的停止條件的(如時間和剩餘硬碟大小)。所有的設置完成後,即可回到主界面進行採集。
(7)採集MKV視頻
在主界面中單擊工具欄“錄製”按鈕,即可進行採集,採集時你可按下工具欄中的“Toggle Stats”按鈕,打開“Stats”面板,查看有關的採集數據,如非常關鍵的丟幀數量,丟幀數量通常應該在總幀數的2~3%以下,否則會讓人覺得很不流暢。如果丟幀太多,可適當降低採集參數(解析度、碼率)。
Matroska的發展速度相當快,它未來的目標是要使文件具備流媒體特性,可通過HTTP及RTP協議進行流式傳輸,另外為這種格式增加一種類似DVD菜單的功能也納入了下一步的發展計劃。當這些計劃完成後,我們可以看到一個功能更強大,更全面的多媒體封裝格式。

有關比較


格式錯誤檢測可變幀率軟字幕流式傳輸菜單非微軟平台
MKV支持支持支持支持支持
AVI不支持不支持不支持不支持支持不夠