# Matroska

Matroska [məˈtrɒskə], nach russisch Matrjoschka [məˈtroʊʃkə], ist ein Containerformat für Audio- und Videodaten. Matroska-Dateien haben entweder die Endung .mkv für Videodaten oder .mka für reine Audiodaten. Für Untertitel wird die Endung .mks verwendet, während für dreidimensionale Inhalte die Endung .mk3d eingeführt wurde.
Matroska unterstützt verschiedene Videocodecs, unter anderem MPEG-1, MPEG-2, MPEG-4, H.264, HEVC, AV1, RealVideo, Theora, Dirac, und Audiocodecs, beispielsweise AAC, AC3, DTS, WAV, MP3, Vorbis und FLAC sowie zusätzliche Formate für Untertitel (VobSub) und erweiterte Metainformationen.
Die Entwickler verstehen das Format als Alternative zu bestehenden Containerformaten wie AVI, OGM/Ogg, ASF, MOV oder MP4. Die Spezifikationen sind öffentlich einsehbar und können frei in Softwareanwendungen verwendet werden. Die Kernbibliotheken stehen unter der GNU LGPL, der Parser unter der BSD-Lizenz.

## Eigenschaften des Formats

Das Format verwendet EBML, ein binäres XML-Format, zur Beschreibung des Containers. Dadurch wird eine hohe Flexibilität des Formats ermöglicht und zugleich gewährleistet, dass Weiterentwicklungen des Formats auch durch ältere Parser noch gelesen werden können.
Ähnlich wie auf DVDs erlaubt die Matroska-Spezifikation u. a. die Einteilung von Dateien in Kapitel, Seamless Branching, sowie die Verwendung mehrerer Tonspuren, zum Beispiel für unterschiedliche Sprachversionen. Das Seitenverhältnis kann während der Ausgabe verändert werden. Der Standard sieht auch Menüfunktionen zur Benutzerführung vor; eine entsprechende Implementierung gibt es aber bisher weder bei den Authoring-Tools noch bei den Wiedergabeprogrammen.
Matroska-Container können neben Audio- und Video- auch Textstreams (etwa für Untertitel) oder Dateien eines beliebigen anderen Formates enthalten. Die Bildrate des Videostreams muss nicht konstant sein, sondern darf schwanken (variable framerate encoding, VFR). Die Synchronisation von Audio- und Videospur kann bei der Erstellung sowie nachträglich noch durch Anpassen der Metainformationen mit einer passenden Verschiebung versehen werden.
Matroska-Dateien sind oft kleiner als vergleichbare Dateien in anderen Formaten, da die Datenstruktur des Containers nur einen geringen Overhead erzeugt. Die maximale Dateigröße beträgt in der derzeitigen Spezifikation 2$^{56}$ − 2 Byte, was ungefähr 7 × 10$^{16}$ Byte oder 72 Petabyte entspricht.
Matroska kann als Streaming-Format eingesetzt und dann mittels HTTP übertragen werden – von Streaming per RTP wird abgeraten.

## Verbreitung

Seit 2003 existiert mit MKVToolNix ein freier Muxer für Matroska.
DivX Inc. nutzt für deren im Januar 2009 veröffentlichtes DivX-7-Format MKV als alleiniges Containerformat, allerdings in einer nicht vollständig standardkonformen Implementierung.
Im Mai 2010 gab Google das Multimedia-Format WebM als Open-Source-Projekt frei, welches auf dem freigekauften Videocodec VP8, dem freien Audiocodec Vorbis und einer vereinfachten Variante von Matroska basiert. Es gibt nur eine vereinfachte Dateistruktur wieder und erlaubt nur die Codecs VP8/VP9 für Video- und Vorbis für Audiospuren.
Im Oktober 2014 bestätigte Microsoft, dass Windows 10 Matroska-Container sowie den HEVC-Codec nativ unterstützen wird. Die Unterstützung war erstmals im Windows 10 Technical Preview Build 9860 verfügbar.

### Unterstützung von MKV in Hardware-Geräten

Unterstützt werden in der Hauptsache MKV-Dateien mit den Videocodecs H.264 Level 4.0 und 4.1, MPEG-4 ASP (Advanced Simple Profile) und Tonspuren in den Formaten AC3, MPEG-1 Layer 2 (MP2) und Layer 3 (MP3), Advanced Audio Coding (AAC) sowie Ogg Vorbis. Es ist aber nicht einfach möglich, auf diese Weise alle denkbaren MKV-Videos in Hardware zu unterstützen, bedingt durch die enorme Vielfalt von möglichen Video- und Audiostreams in MKV-Dateien. Definierte Wiedergabeprofile, sogenannte Subsets von Matroska, die dies einfacher erlauben würden, fehlen bisher noch im Standard.