Matroska

Matroska（マトロスカ、マトリョーシカ）はマルチメディアコンテナフォーマットの一種である"Matroska aims to become THE standard of multimedia container formats." Matroska.org. What is Matroska?。

 概要 
Matroskaは動画、音声、字幕などのマルチメディアデータを格納するコンテナフォーマットである。「.mkv」ファイル（Matroska Video）や「.mka」ファイル（Matroska Audio）として知られる。ロシアの入れ子人形マトリョーシカにちなんで名付けられた。オープンソース（GNU LGPL）で開発が行われている"Matroska is an open standards project. ... The source code of the libraries developed by the Matroska Development Team is licensed under GNU L-GPL." Matroska.org. What is Matroska?。

データ構造仕様にEBML（Extensible Binary Meta Language）を採用し"Matroska ... is based on EBML" Matroska.org. What is Matroska?、。

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

2024年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 

。

。

したがって、新機能の追加においても互換性を落とすことなく対応させることができ、なおかつ、不具合の起きにくい設計にすることを可能にした"EBML enables the Matroska Development Team to gain significant advantages in terms of future format extensibility, without breaking file support in old parsers." Matroska.org. What is Matroska?。

2020年7月、EBMLはとして正式に規格化された。

 構造 
XMLが要素の木構造からなるように、EBMLも要素の入れ子構造から成る"EBML uses a system of Elements to compose an EBML Document." RFC8794 July 2020. Extensible Binary Meta Language.。構成単位たる要素はEBML Elementと呼ばれる'"EBML Element": A foundation block of data' RFC8794 July 2020. Extensible Binary Meta Language.。要素の種類によらずEBML Elementは次の3要素から成る'"EBML Element" ... that contains three parts: an "Element ID", an "Element Data Size", and "Element Data".' RFC8794 July 2020. Extensible Binary Meta Language.。

 Element ID: この要素の種類を示す識別子。XMLにおけるタグ名に相当。識別子の意味（例: ID_5 == <H1>）はスキーマごとで定義'used to uniquely identify a defined "EBML Element" within a specific "EBML Schema".' RFC8794 July 2020. Extensible Binary Meta Language.。
 Element Data Size: この要素の長さ（オクテット）'An expression, encoded as a "Variable-Size Integer", of the length in octets of "Element Data".' RFC8794 July 2020. Extensible Binary Meta Language.。
 Element Data: コンテンツ。
。

上記の通りElementはIDをもち、このIDがElementの意味/役割（セマンティックス）に結びついている。具体的な各Elementはスキーマで定義され、ID・名称・型などを持つ（例: ID_5/<H1>/String型）型は8種類（int, uint, float, string, UTF-8, Date, Master, Binary）"An EBML Element Type defines a concept of storing data within an EBML Element that describes such characteristics as length, endianness, and definition." RFC8794 July 2020. Extensible Binary Meta Language.。。

EBML Elementの入れ子構造からなり、かつEBMLで定めるElement配置をもつデータをEBML Documentという。EBML Documentはデータ部であるEBML Body'"EBML Body":  All data of an "EBML Document"' RFC8794 July 2020. Extensible Binary Meta Language.と仕様部であるEBML Headerからなる'"EBML Document":  A datastream comprised of only two components, an "EBML Header" and an "EBML Body".' RFC8794 July 2020. Extensible Binary Meta Language.。

 拡張子 

.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」と呼ばれる一般的な字幕のファイルフォーマットである。

 メディアプレーヤー 

名前OSSSA/ASSサポートALLPlayerWindowsALShowBS.PlayerChameleoクロスプラットフォームCorePlayerDivX PlayerDaum PotPlayerWindowsGOM PlayerGstreamerベースのプレイヤークロスプラットフォームjetAudioWindowsKantarisThe KMPlayerTotalMedia TheatreMedia Player ClassicMPlayerクロスプラットフォームMPlayer ExtendedmacOSShowTimeWindowsSMPlayerクロスプラットフォームTarget Longlife Media PlayerWindowsThe Core Pocket Media PlayerWindows MobileVLC media playerクロスプラットフォームxineZoom PlayerWindowsGNOME ビデオUnix系

 メディアセンター 
名前OSSSA/ASSサポートBoxeeクロスプラットフォームDivX ConnectedWindowsMediaPortalMoovidaクロスプラットフォームMythTVLinuxPlexmacOSPS3 Media ServerクロスプラットフォームXbmc

 ツール 
名前OSSSA/ASSサポートAvidemuxクロスプラットフォームConceivaConvertHQWindowsHandBrakeクロスプラットフォームiFunia Video ConvertermacOSDivX ConverterクロスプラットフォームFFmpegFormatFactoryWindowsiVerio Software Video Converter for CamcordersクロスプラットフォームMediaCoderWindowsMKVToolnixクロスプラットフォームMKV2VOB for converting MKV for playback on PS3 etcWindowsPerian Quicktime Plugin for Mac OS XmacOSSUPERWindowsTotal video converterVideo Converter UltimateWindowsMac OSVirtualDubModWindowsMakeMKVConvertXtoDVDXMedia Recode

 脚注 

 関連項目 

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

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

 外部リンク 


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