Matroska is eenopensourcemultimediacontainer. Het Matroska-project bestaat sinds 2002 en is ontstaan uit hetMultimedia Container Format-project (MCF). Matroska-bestanden komen meestal onder debestandsextensies.mkv (voor video) en.mka (voor audio) voor. De naam verwijst naar de Russischematroesjkapoppen.
HetWebM-bestandsformaat is gebaseerd op Matroska.
Een multimediacontainer is een bestand dat kan bestaan uit één of meerdereaudio-,video- enondertitelingtracks. Dit maakt het mogelijk om bijvoorbeeld een complete film op eencd ofdvd op te slaan in een enkel bestand. Het is echter geen video- of audiocodec en dus niet geschikt voorcompressie. Matroska bevat eigenschappen van een modern containerformaat, zoals snel zoeken in het bestand, foutherstellend vermogen, hoofdstukken, selecteerbare ondertitels, selecteerbare audiotracks, uitbreidingsmogelijkheden met modules,streaming voor internet (HTTP enRTP audio- en videotracks) en menu's (zoals op dvd's).
Matroska onderscheidt zich van het oorspronkelijke MCF, doordat het is gebaseerd opEBML, een binaire versie vanXML. EBML maakt het mogelijk Matroska in de toekomst met andere formaten uit te breiden, met behoud van de bestandsondersteuning.
Een EBML-bestand start altijd met de code 0x1A. InDOS betekent deze code 'stoppen met weergeven'. In een Matroska-bestand kan er dus nogASCII-tekst geïntegreerd worden voor de EBML-data, die kan weergegeven worden met DOS. Hierachter is de ‘header’ van de EBML-data opgeslagen. Zo kan het decodeerprogramma weten met welke compressie het te maken heeft. Hierachter wordt de ‘block timecode’ opgeslagen. Deze bestaat uit een16 bitinteger. Vermenigvuldigd met een welbepaalde tijdschaal verkrijgt men een getal dat aan het hoofd van elke cluster is opgeslagen (zogenaamde TimeCode Blocks). Hierdoor kan men tot op demilliseconde door een Matroska video- of audiobestand navigeren. Hierna komt de werkelijke data met hoofdstukken, ondertitels, menu’s en dergelijke. Aan het eind van het bestand kunnen nog bestanden of tekst toegevoegd worden.
Zoals bij de meeste containers wordt ookDigital Rights Management (DRM) ondersteund in Matroska. Men kan trouwens willekeurig een beveiliging in Matroska inbouwen. Doordat de beveiliging zich bevindt in de blocks kan men deze aanpassen zonder haar te ontcijferen. De beveiliging kan zich ook bevinden in een apart deel van Matroska. Hierdoor heeft men twee aparte sleutels nodig om deze te ontcijferen, wat het kraken moeilijker maakt.
Matroska ondersteunt bijna alle codecs, inclusiefOgg Vorbis. Ook bijna alle ondertitelformaten worden ondersteund. Doordat er verschillende tracks aanwezig kunnen zijn, is er een mogelijkheid voor menu’s zoals bij DVD’s. Ook hoofdstukken worden ondersteund door een bestandje mee te geven dat verwijst naar verschillende clusters.