Matroska 多媒體容器格式 (.mkv)
Matroska 標準Matroska 影片(MKV)是一種免費、可擴充且符合開放標準的多媒體容器格式,能在單一檔案中容納無限數量的影片、音訊、圖片與字幕軌道。
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 MKV 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 MKV 檔案:
十六進位簽章(偏移量 0):
1A 45 DF A3ASCII 表示法: Eߣ
標準化: Matroska 開放標準 / IETF 工作小組草案
技術規格
| 容器架構 | 可延伸二進位中繼語言(EBML)階層式容器 |
| 壓縮 | 與編解碼器無關:可容納 AV1、HEVC、H.264、VP9、DTS-HD、TrueHD、FLAC 以及未壓縮影片 |
| 位元組序 | 大端序(Big-Endian)整數表示法,搭配可變長度大小描述項 |
| 色彩空間 | HDR10、Dolby Vision、HLG 以及所有色彩空間 |
| 色版與結構 | 實際上無限制的音訊軌道、字幕資料流與攝影機視角 |
| 最大尺寸 | 不受限制;支援 8K、16K 與高影格率影片 |
| 透明度 | 當容納 VP9 或 ProRes 資料流時,支援完整的 Alpha 通道 |
| 串流與漸進式 | 基於叢集的區塊分塊架構支援穩健的即時串流,並對損毀具備良好的容錯能力 |
技術比較矩陣:MKV 對比競爭格式
| 技術屬性 | MKV (目前) | MP4 | WEBM | AVI |
|---|---|---|---|---|
| 編解碼器自由度 | 支援許多編解碼器;各播放器支援度不一 | 主要限制為 H.264 / HEVC / AV1 與 AAC | 限制為 VP8 / VP9 / AV1 與 Vorbis / Opus | 僅限傳統編解碼器 |
| 字幕擬真度 | 當播放器識別時,附加字型可支援算繪;外觀取決於播放器支援度 | 僅限基本文字樣式 | 僅限基本 WebVTT 樣式 | 需要外部字幕檔案 |
| Apple 原生支援 | 需要第三方播放器(VLC、IINA、Infuse) | 在部分 Apple 裝置與軟體上可原生播放;支援度因格式與版本而異 | 透過現代框架在 Safari 中支援 | 舊版 QuickTime 外掛程式 |
| 容器架構 | 可延伸二進位中繼語言(EBML) | ISO 基礎媒體檔案格式(Atoms / Boxes) | EBML(Matroska 子集) | RIFF 區塊架構 |
常見損壞模式與十六進位修復指南
檔案可以播放,但時間軸略過功能失效,或是計算出的持續時間不正確。
根本原因: 由於下載不完整,導致「Cues」元素(Matroska 尋找表格)損壞或遺失。
修復: 使用「mkvmerge -o fixed.mkv broken.mkv」立即重建尋找索引表格。
安全性分析與解析器攻擊向量
EBML 解析需要可變長度整數解碼與巢狀元素樹。格式錯誤的元素長度可能會觸發記憶體管理瑕疵。
已知攻擊向量
- 媒體播放器中 EBML 元素大小解析發生堆積緩衝區溢位。
- 透過字幕算繪器中處理格式錯誤的內嵌字型附加檔案來執行任意程式碼。
- 透過 Matroska 章節元素中的循環參照迴圈造成阻斷服務。
防禦最佳實務: 淨化內嵌附加檔案類型,並使用受沙箱保護且記憶體安全的解析器程式庫來解析 EBML 結構。
歷史起源與里程碑
2023IETF Cellar 工作小組推動 Matroska 規格朝向正式的 RFC 標準發展。
2010Google 選擇 Matroska EBML 作為 WebM 開放網路影片格式的基礎。
2002Steve Lhomme 宣布 Matroska 專案為 MCF 容器的靈活分支。
主要優勢與優點
- Matroska 支援許多影片、音訊與字幕編解碼器,不過相容性取決於播放器與裝置。
- 完整支援進階樣式字幕(ASS/SSA)、多語言音訊軌道與章節選單。
- 具備高度抗損毀能力:損壞的叢集不會影響周圍影片的播放。
技術限制與缺點
- 在預設的 Apple QuickTime 播放器與 iOS 裝置上無法直接原生播放。
- 並非所有商用智慧電視集線器與硬體播放器都原生支援。
- 未經轉碼無法透過 HTML5 <video> 直接嵌入標準網頁瀏覽器中。
有趣的技術冷知識
- 「Matroska」這個名稱源自俄語單字「Matryoshka」,指的是層層相疊的木製俄羅斯娃娃。
- 「1A 45 DF A3」這組檔案簽章(magic bytes)代表了 MKV 與 WebM 共同使用的通用 EBML 標頭識別碼。
- MKV 檔案可以直接在容器內嵌入完整的 TrueType 與 OpenType 字型檔案,以算繪動漫字幕。
常見技術問題
為什麼我的電視或手機無法播放 MKV 檔案?
部分裝置不支援 MKV 或檔案中包含的編解碼器。在轉換之前,請檢查目標播放器的容器與編解碼器支援度;只有在串流相容時,重新封裝為 MP4 才有幫助。
我可以將 MKV 轉換為 MP4 而不損失影片品質嗎?
當 MP4 支援該影片與音訊編解碼器時,重新封裝可以在不重新編碼的情況下保留已編碼的串流。否則,轉換可能需要進行轉碼,這可能會改變品質。
MKV 與 WebM 之間是什麼關係?
WebM 是基於 Matroska / EBML 容器模型所建立,並使用具有指定編解碼器的受限設定檔,包含 VP8、VP9、AV1、Vorbis 與 Opus。