Matroska Multimedia Container (.mkv)
Matroska StandaardMatroska Video (MKV) is een vrij, uitbreidbaar multimediacontainerformaat op basis van een open standaard. Het kan een onbeperkt aantal video-, audio-, afbeeldings- en ondertiteltracks in één bestand bevatten.
Inspecteren en metadata
Besturingssystemen en bestandsanalysators herkennen MKV-bestanden aan de hand van de eerste binaire bytesequentie:
Bestandshandtekening op byteniveau (magic bytes)
Besturingssystemen en bestandsanalysators herkennen MKV-bestanden aan de hand van de eerste binaire bytesequentie:
HEX-HANDTEKENING (OFFSET 0):
1A 45 DF A3ASCII-WEERGAVE: Eߣ
Standaardisatie: Matroska Open Standard / IETF Working Group Draft
Technische specificaties
| Containerarchitectuur | Hiërarchische container op basis van de uitbreidbare binaire metataal (EBML) |
| Compressie | Codecagnostisch: bevat AV1, HEVC, H.264, VP9, DTS-HD, TrueHD, FLAC en ongecomprimeerde video |
| Bytevolgorde (endianness) | Big-Endian integer-weergaven met groottedescriptoren van variabele lengte |
| Kleurruimten | HDR10, Dolby Vision, HLG en alle kleurruimten |
| Kanalen en structuur | Nagenoeg onbeperkt aantal audiotracks, ondertitelstromen en camerahoeken |
| Maximale afmetingen | Onbeperkt; ondersteunt video in 8K en 16K en met hoge framesnelheden |
| Transparantie | Volledige ondersteuning voor alfakanalen bij VP9- of ProRes-streams |
| Streaming en progressief | Framing in clusters maakt robuuste livestreaming mogelijk en biedt weerstand tegen beschadiging |
Technische vergelijkingsmatrix: MKV versus concurrenten
| Technisch kenmerk | MKV (Huidig) | MP4 | WEBM | AVI |
|---|---|---|---|---|
| Codecvrijheid | Ondersteunt vele codecs; spelerondersteuning varieert | Voornamelijk beperkt tot H.264/HEVC/AV1 en AAC | Beperkt tot VP8/VP9/AV1 en Vorbis/Opus | Alleen verouderde codecs |
| Weergavekwaliteit van ondertitels | Lettertypebijlagen kunnen de weergave ondersteunen als de speler ze herkent; het uiterlijk hangt af van de ondersteuning door de speler | Alleen eenvoudige tekstopmaak | Alleen eenvoudige WebVTT-opmaak | Externe ondertitelbestanden vereist |
| Apple-systeemondersteuning | Vereist een speler van derden (VLC, IINA, Infuse) | Standaard afspelen op sommige Apple-apparaten en in sommige Apple-software; ondersteuning varieert per formaat en versie | Ondersteund in Safari via moderne frameworks | Verouderde QuickTime-plug-in |
| Containerarchitectuur | Extensible Binary Meta Language (EBML) | ISO Base Media File Format (Atoms/Boxes) | EBML (Matroska-subverzameling) | RIFF-chunkarchitectuur |
Veelvoorkomende beschadigingen en gids voor hex-herstel
Het bestand wordt afgespeeld, maar navigeren door de tijdlijn werkt niet of de duur wordt onjuist berekend.
Oorzaak: Beschadigd of ontbrekend element 'Cues' (de Matroska-zoektabel) door een onvolledige download.
Herstel: Bouw de zoektabel direct opnieuw op met 'mkvmerge -o fixed.mkv broken.mkv'.
Beveiligingsanalyse en aanvalsvectoren voor parsers
Voor het verwerken van EBML zijn decodering van gehele getallen met variabele lengte en geneste elementstructuren nodig. Verkeerd gevormde elementlengten kunnen fouten in het geheugenbeheer veroorzaken.
Bekende aanvalsvectoren
- Heap-bufferoverflow bij het parseren van de grootte van EBML-elementen in mediaspelers.
- Willekeurige code-uitvoering door verkeerd gevormde ingesloten lettertypebijlagen die ondertitelrenderers verwerken.
- Denial-of-service via circulaire verwijzingen in Matroska-hoofdstukelementen.
Aanbevolen beveiligingspraktijken: Controleer de typen ingesloten bijlagen en verwerk EBML-structuren met geïsoleerde, geheugenveilige parserbibliotheken.
Historische oorsprong en mijlpalen
Belangrijkste voordelen
- Matroska ondersteunt vele video-, audio- en ondertitelcodecs, hoewel de compatibiliteit afhangt van de speler en het apparaat.
- Volledige ondersteuning voor geavanceerde, opgemaakte ondertitels (ASS/SSA), meertalige audiotracks en hoofdstukmenu's.
- Hoge veerkracht tegen beschadiging: beschadigde clusters verhinderen het afspelen van omliggende video niet.
Technische beperkingen
- Geen ingebouwde ondersteuning voor afspelen in de standaardspeler Apple QuickTime en op iOS-apparaten.
- Wordt niet standaard ondersteund door alle commerciële smart-tv's en hardwarespelers.
- Kan niet rechtstreeks worden ingesloten in standaard webbrowsers via HTML5 <video> zonder transcodering.
Interessante technische weetjes
- De naam 'Matroska' is afgeleid van het Russische woord 'Matryoshka', dat verwijst naar in elkaar passende houten matroesjkapoppen.
- De bestandshandtekening (magic bytes) '1A 45 DF A3' vertegenwoordigt de universele EBML-header-ID die wordt gebruikt door zowel MKV als WebM.
- MKV-bestanden kunnen volledige TrueType- en OpenType-lettertypebestanden direct in de container insluiten om anime-ondertitels weer te geven.
Veelgestelde technische vragen
Waarom kan mijn tv of telefoon geen MKV-bestanden afspelen?
Sommige apparaten ondersteunen MKV of een codec in het bestand niet. Controleer vóór het converteren of de container en codec door de doelspeler worden ondersteund. Remuxen naar MP4 helpt alleen als de streams compatibel zijn.
Kan ik MKV naar MP4 converteren zonder videokwaliteit te verliezen?
Als MP4 de video- en audiocodecs ondersteunt, kan remuxen de gecodeerde streams behouden zonder hercodering. Anders kan voor de conversie transcodering nodig zijn, wat de kwaliteit kan veranderen.
Wat is de relatie tussen MKV en WebM?
WebM is gebaseerd op het Matroska/EBML-containermodel en gebruikt een beperkt profiel met gespecificeerde codecs, waaronder VP8, VP9, AV1, Vorbis en Opus.