Matroska

Matroska（、マトロスカ、マトリョーシカ）はマルチメディアコンテナフォーマットの一種である。

概要 
Matroskaは動画、音声、字幕などのマルチメディアデータを格納するコンテナフォーマットである。「.mkv」ファイル（Matroska Video）や「.mka」ファイル（Matroska Audio）として知られる。ロシアの入れ子人形マトリョーシカにちなんで名付けられた。オープンソース（GNU LGPL）で開発が行われている。

データ構造仕様にEBML（Extensible Binary Meta Language）を採用し、。

。Google社の動画規格WebMのコンテナとしてMatroskaのサブセットを採用している。2014年、Microsoft Windows 10がMatroskaに標準対応することがマイクロソフト社から発表された。

主な特徴

共通 
多種多様なコーデックに対応。
動画：VFW Codec, QuickTime Codec, Motion JPEG, MPEG-1/-2/-4, H.264, H.265, RealVideo, Snow, Theora, VC-1, VP8, VP9, AV1
音声：AAC, AC-3, DTS, MP3, MP2, Vorbis, Opus, PCM, RealAudio, FLAC, TTA, WavPack

MKV（Matroska Video File） 
複数音声
前参照フレーム（Bフレーム）に対応
チャプター（頭出し機能。1/1000秒単位で設定可能）
可変フレームレート（VFR）対応
高度な字幕機能（テキスト型、VisualBob型両対応）
アスペクト比指定
映像、音声、字幕以外のファイル添付
DVD-Videoのようなメニュー（未実装）

MKA（Matroska Audio File） 
アルバム化（複数の曲を一つのファイルに入れ、順番に再生）
時間が同じでないファイルの多重化
異なるコーデックの音声を収録可能

EBML 
。

。

したがって、新機能の追加においても互換性を落とすことなく対応させることができ、なおかつ、不具合の起きにくい設計にすることを可能にした。

。

構造 
XMLが要素の木構造からなるように、EBMLも要素の入れ子構造から成る。構成単位たる要素はEBML Elementと呼ばれる。要素の種類によらずEBML Elementは次の3要素から成る。

 Element ID: この要素の種類を示す識別子。XMLにおけるタグ名に相当。識別子の意味（例: ID_5 == <H1>）はスキーマごとで定義。
 Element Data Size: この要素の長さ（オクテット）。
 Element Data: コンテンツ。
。

上記の通りElementはIDをもち、このIDがElementの意味/役割（セマンティックス）に結びついている。具体的な各Elementはスキーマで定義され、ID・名称・型などを持つ（例: ID_5/<H1>/String型）。。

EBML Elementの入れ子構造からなり、かつEBMLで定めるElement配置をもつデータをEBML Documentという。EBML Documentはデータ部であるEBML Bodyと仕様部であるEBML Headerからなる。

拡張子 

.mkv Matroska Video（映像）
.mka Matroska Audio（音声のみ）
.mks Matroska Subtitles（字幕のみ）
.mk3d Matroska 3D（3D映像）

CodecIDの例

ビデオ 
V_MPEG4/ISO/AVC（H.264/MPEG-4 AVC）

オーディオ 
A_AAC/MPEG4/LC（AAC-LC）

対応ソフト 
以下の「SSA」は「Sub Station Alpha」、「ASS」は「Advanced SSA」と呼ばれる一般的な字幕のファイルフォーマットである。

メディアプレーヤー

メディアセンター

ツール

脚注

関連項目

ソフトウェア 
Combined Community Codec Pack
Haali Media Splitter
VLC media player
Media Player Classic
GOM Player
ratDVD
MPlayer
ビデオ (GNOME)
FFmpeg（ffplay）

その他 
ファイルフォーマット
コンテナフォーマット
ファンサブ
MADムービー
マトリョーシカ人形

外部リンク 
  

コーデック
動画ファイルフォーマット
オープンフォーマット
マルチメディア
ロシアの発明