What Is an MKV File? Matroska Video, and Why It Holds So Much
MKV is a container. Jump to your question below, or work through it in order.
MKV is a container. Jump to your question below, or work through it in order.
An MKV file is a Matroska container. One file holds video, every audio track, every subtitle track, chapter marks and anything else attached, all at once.
Containers hold. They never compress. Whatever made your file big or small is the codec inside it, and MKV takes almost any codec you name.
Windows has played MKV since Windows 10, and VLC plays one on every system. Files that refuse are usually about the codec inside rather than about Matroska.
MKV stands for Matroska Video. Matroska is the container, and MKV is what you call one holding video. You will also see them known as Matroska video files, and the two names mean one thing. The same container gives you .mka for audio alone, .mks for subtitles alone and .mk3d for stereoscopic video.
Matroska takes its name from matryoshka, from the Russian nesting doll. That is not decoration. Matroska builds elements inside other elements, all the way down, so that doll describes its structure exactly.
What makes the MKV file format worth having is how much fits in one file. A film with original audio, a dubbed track, six subtitle languages, chapter marks and whatever font those subtitles need is still one file you can copy to a drive.
Containers are boxes, not compressors. Nothing about MKV makes video smaller or larger. Move identical video and audio into MP4 and the bytes barely change.
.mkv, plus .mka, .mks and .mk3dvideo/matroska, audio/matroska, video/matroska-3dRFC 9559 made Matroska an IETF standard in October 2024. Its three authors are whoever started the format, whoever wrote its main tool and an archivist. Twenty-two years from a mailing-list argument to the Standards Track.
Matroska started as a disagreement. In 2002 a project called Multimedia Container Format was building an open container. Steve Lhomme wanted it built on EBML, a binary form of XML, rather than on a hand-rolled binary layout. MCF lead developer Lasse Kärkkäinen disagreed.
Lhomme forked that work and announced Matroska on 6 December 2002. Its nesting-doll name arrived with it, because EBML elements sit inside one another as dolls do.
Several guides get this backwards. An older version of this page said MKV was developed by Steve Lhomme and Lasse Kärkkäinen together. A guide ranking on page one says Kärkkäinen “worked with” Lhomme to create it. Those two were on opposite sides of the split that created Matroska.
What happened next took two decades. WebM took a profile of Matroska in 2010. Windows built in playback in 2015. Then IETF chartered a working group called CELLAR to write everything down properly, and two standards came out of it.
| When | What happened |
|---|---|
| 2002 | MCF splits over whether to use EBML |
| 6 Dec 2002 | Steve Lhomme announces Matroska |
| 19 May 2010 | Google announces WebM, a profile of Matroska |
| Oct 2014 | Windows 10 preview build 9860 plays MKV with nothing added |
| Jul 2015 | Windows 10 ships, and MKV plays on a clean install |
| Apr 2016 | Microsoft Edge adds WebM |
| Jul 2020 | EBML becomes RFC 8794, Standards Track |
| 2021 | Safari 14.1 and iOS 15 add WebM, so every major browser reads a Matroska profile |
| Oct 2024 | Matroska becomes RFC 9559, Standards Track |
RFC 9559 lists three authors: S. Lhomme, who started the project, M. Bunkus, who wrote MKVToolNix, plus Dave Rice. Those same three wrote RFC 8794. Format builders rarely stay long enough to standardize their own work twenty-two years later.
That RFC also did something small and useful: it registered real media types. Those are video/matroska, audio/matroska and video/matroska-3d. You still meet video/x-matroska in older documentation, and it was never registered. The x- prefix is exactly what an unregistered type looks like.
Matroska is rarely the problem. Your player opens the file, finds video it cannot decode and shows you a black screen or an error. Try VLC first, because it carries its own decoders.
An MKV that refuses to play is usually opening fine. Your player reads the header, reads the track list, then meets a video stream encoded with something it has no decoder for. HEVC and AV1 cause most of these.
Sound but no picture points that way too. Your player knows the audio codec and not the video codec, and that symptom alone narrows a fault to one track.
| System | Plays MKV? | What to use |
|---|---|---|
| Windows 10 and 11 | Yes, built in | Media Player, or VLC for odd codecs |
| macOS | No | VLC or IINA. QuickTime does not read Matroska |
| Linux | Yes | VLC, MPV, MPlayer, whatever ships |
| Android | Yes | VLC, or the player that came with the phone |
| iPhone and iPad | No | VLC for Mobile, free on the App Store |
| Smart TV, set-top box | Sometimes | Depends on the codec inside, not on MKV |
| Web browser | WebM only | See section 8 |
Do not install a codec pack. Old guides send you to one, and a guide ranking on page one calls codec packs “notorious for bundling in crapware or, worse, malware” in the same breath. VLC carries its own decoders and needs nothing else.
| What you see | What it often means | Start with |
|---|---|---|
| Sound, but no picture | Video codec your player lacks | Open it in VLC |
| Picture, but no sound | Audio codec your player lacks | Open it in VLC |
| Nothing happens at all | No player is associated yet | Right-click, Open with |
| Plays, then stops partway | The download never finished | Check the file size |
| Stutters on a TV or a stick | Hardware decoding the wrong codec | Re-encode, see section 9 |
| Subtitles missing | The track is there and switched off | Read section 6 |
One download covers every system: VLC. Windows, Linux and Android already play MKV without it, and macOS and iOS are the two places you genuinely need something.
Nothing here costs money. The paid MKV players advertised against this search are selling you a thing three free programs already do better.
VLC media player, from VideoLAN, is the short answer on every system. It is open source, and it carries its own decoders, so playing MKV files there needs nothing else installed. Windows supports MKV natively as well, and has since Windows 10. Most media players on Linux and Android support MKV out of the box too.
| Software | Runs on | Why choose it |
|---|---|---|
| VLC | Windows, Mac, Linux, Android, iOS | The answer. Carries its own decoders, so odd codecs still play |
| Windows Media Player | Windows 10 and 11 | Already installed, and it reads Matroska on a clean system |
| IINA | Mac | Built for macOS, and it looks like a Mac program rather than a port |
| MPV | Windows, Mac, Linux | Small, quick and keyboard-driven, for people who want that |
| MKVToolNix | Windows, Mac, Linux | Not a player. Inspects, splits, merges and remuxes without re-encoding |
| HandBrake | Windows, Mac, Linux | For re-encoding when a device refuses the codec inside |
MKVToolNix deserves its own paragraph. Moritz Bunkus wrote it, and he is also an author of RFC 9559, so the tool and the standard come from the same hands. It opens an MKV file, lists every track in it and lets you drop the ones you do not want, saving the rest in seconds without touching the video.
Install VLC. Free on all systems, and it plays what your default player refuses.
Install MKVToolNix. Drop tracks, merge files, fix the language labels. No re-encoding.
Apple never added Matroska to QuickTime, so double-clicking an MKV on a Mac gets you a refusal rather than a film. This is the one platform gap that has never closed.
The fix is one free download. VLC plays anything and IINA does the same with a nicer interface. Both read MKV directly with no codec packs and no conversion. On an iPhone or iPad, VLC for Mobile does the same job.
Do not judge the file by what a TV does. A smart TV, a games console or a streaming stick accepts a short list of codecs in hardware. When one refuses your MKV, the container is fine and the codec inside is the thing it cannot decode.
An EBML Header names the format. One Segment holds everything else. Clusters carry the actual video and audio, and the other seven elements are index and metadata around them.
Matroska is built on EBML, which RFC 8794 describes as a binary equivalent to XML. Every piece of an MKV file is an element with an identifier, a length and a value, and elements nest inside other elements. That is the nesting doll, and it is why the format can gain new features without breaking old readers.
A reader that meets an element it does not recognize reads its length, skips that many bytes and carries on. Formats without that property need a version bump for every addition.
| Element | What it holds |
|---|---|
| EBML Header | Names the doc type as matroska and gives the version |
| Segment | The root that contains all eight elements below |
| SeekHead | An index saying where the other elements sit |
| Info | Duration, timestamp scale, and which program wrote the file |
| Tracks | Every stream, with its number, language, name and codec |
| Chapters | Scene marks, and menu structure when there is one |
| Clusters | The video frames and audio samples. Nearly every byte |
| Cues | The seek index. Missing Cues is why some files will not scrub |
| Attachments | Any file at all: subtitle fonts, cover art, a text file |
| Tags | Metadata for the file and for every track in it |
RFC 9559 calls a Cluster “the Top-Level Element containing the (monolithic) Block structure”, and every one carries exactly one timestamp. Inside a Cluster, frames travel as Blocks. A SimpleBlock is the stripped-down version, used when none of the extra fields are needed, which keeps the overhead small.
Attachments are the underrated part. Styled subtitles need the exact font they were designed against, and MKV can carry that font inside the file. Move the same video to a format with no attachment element and the subtitles arrive in whatever the player happens to have.
RFC 9559 sets hard rules for the EBML header on a Matroska file. The doc type must read matroska, the maximum ID length must be 4 and the maximum size length sits between 1 and 8. Those three values are how a reader confirms it is holding Matroska before it reads another byte.
The eight-octet ceiling is worth naming, because the older version of this page turned it into the format's only listed disadvantage. Eight octets is 64 bits, which counts past eighteen quintillion. It is the width of a number, not a limit anyone will ever meet.
Multiple audio tracks, multiple subtitle tracks and chapters are the reason people keep MKV. Every one of them is a separate track with its own language label, switchable while the film plays.
One container file carries audio and video together with chapter marks and subtitle tracks. Open an MKV in VLC and look under the Audio and Subtitle menus. What you find is not a setting. Every entry is a real track stored in the file, with its own language code and name, and switching between them takes no processing at all.
That is why Matroska took hold with people archiving films and with fan subtitling groups. One file carries original audio, dubbed versions, commentary and as many subtitle languages as anyone wants to write.
| Format | What it is | Survives MP4? |
|---|---|---|
| SRT | Plain text with timings. The common one | Yes |
| ASS and SSA | Styled text: fonts, colors, positioning, karaoke | No |
| VobSub | Subtitles as pictures, lifted from a DVD | Rarely |
| PGS | Subtitles as pictures, lifted from a Blu-ray | Rarely |
| WebVTT | The web subtitle standard | Yes |
ASS and SSA are where conversions go wrong. Those formats carry styling, positioning and whichever font renders them, and MP4 has no box to put any of that in. Converters either drop the track or flatten it to plain text, and karaoke effects and positioned signs go with it.
Check the menu first. The track is usually present and switched off rather than absent.
MP4 dropped them. Keep the MKV, or burn the subtitles into the picture.
Working with subtitle files on their own? A .mks file is the same container carrying subtitles and nothing else, and the MP4 container is where most converted video ends up.
MKV holds more and MP4 plays more places. That one sentence decides almost every case. Keep MKV for the copy you archive, send MP4 to anyone whose device you cannot check.
Both are containers. Both hold H.264, HEVC and AAC. Put identical video and audio in both and they land within a few kilobytes of one another, because neither compresses anything.
The difference is what else fits, and where the file will play.
| MKV | MP4 | |
|---|---|---|
| Arrived | 2002 | 2001 |
| Standard | RFC 9559, 2024 | ISO/IEC 14496-14 |
| Video and audio tracks | Unlimited | Several, in practice |
| Styled subtitles | Yes, ASS and SSA | No box for them |
| Attached fonts | Yes | No |
| Ordered chapters | Yes | Plain chapters only |
| Plays on phones and TVs | Sometimes | Almost always |
| Plays in a browser | As WebM | Directly |
| Apple support | Needs VLC | Native everywhere |
| File size, same content | Same size. Neither container compresses | |
MP4 wins on device support, which is the one row deciding most transfers.
The size row catches people out. Guides claim MKV files are smaller, and the number usually quoted compares a disc rip against its own disc. Dropping menus, trailers and five audio tracks saved that space. Moving what remained into another box saved nothing.
Keep MKV. Every track, every subtitle, every chapter, in one file.
Send MP4. It plays on the phone or TV you cannot test first.
Comparing containers? the AVI format is the older Microsoft container, Flash video files carried the web before MP4 took over and MP4 video is what most devices want today.
Every major browser plays Matroska already. It goes by WebM, which is a profile of the same container with the track list narrowed to a few codecs.
Google announced WebM on 19 May 2010 at Google I/O. Rather than design a container, it took Matroska and restricted it. Parsing is identical and elements are identical. A WebM file is a Matroska file that agreed to a shorter menu.
The restriction is about codecs. WebM allows VP8, VP9 and AV1 for video, and Vorbis or Opus for audio. Nothing else. That narrow list is what let browsers ship it without licensing arguments.
| Browser | WebM support |
|---|---|
| Chrome | From the 2010 launch |
| Firefox | From the 2010 launch |
| Opera | From the 2010 launch |
| Edge | April 2016 |
| Safari on macOS | Version 14.1, 2021 |
| Safari on iPhone | iOS 15, 2021 |
So “browsers cannot play MKV” is half right for an unhelpful reason. Drag an MKV into a browser tab and it usually fails, not because browsers cannot read Matroska, but because H.264 or HEVC inside sits outside what WebM allows.
This is worth knowing before you convert. Video already encoded as VP9 or AV1 becomes WebM by remuxing, with no re-encoding and no quality loss. Video already encoded as H.264 cannot, so it goes to MP4 instead.
Remux first, re-encode only if you must. Copying the streams into a new container takes seconds and changes not one byte of picture. Re-encoding takes an hour and always costs quality.
Converting an MKV means one of two things, and most tools will not say which. Knowing that difference saves hours and saves your picture.
Seconds, no loss. The same video and audio move into a new container untouched.
Hours, some loss. Every frame is decoded and compressed again.
-c copy. In graphical tools, look for passthrough or stream copy and turn it on.That one line is the entire remux. FFmpeg reads Matroska, lifts the streams out, writes them into MP4 and never decodes a frame. On full-length films it finishes in well under a minute.
Watch what a converter does by default. Most consumer tools re-encode whether you needed it or not, because that is their only path. Conversions taking forty minutes and handing back a softer picture were re-encoding what could have been copied.
Remuxing MP4 into MKV works identically and is the safer direction, because MKV has room for everything MP4 holds. People do it to merge separate subtitle files into video, or to add another audio track, both of which MKV handles and MP4 resists.
An MKV that plays but will not scrub is missing its Cues, and that is repairable in seconds. An MKV that stops partway through was never downloaded in full.
Dragging the playback bar does nothing, or it jumps to the wrong place. That is the Cues element, the seek index described in section 5. Files written by a recorder, or interrupted mid-write, end up without one.
MKVToolNix rebuilds it. Open the file and save it out again. MKVToolNix writes fresh Cues from the Clusters it finds. Nothing is re-encoded and your picture never changes.
| Symptom | Cause | Fix |
|---|---|---|
| Will not seek | Missing Cues index | Remux in MKVToolNix |
| Stops at the same point | Incomplete download | Download it again |
| Audio drifts out of sync | Timestamps written badly by the encoder | Remux, or set a delay in VLC |
| Plays in VLC, not elsewhere | Codec the other player lacks | Nothing is wrong. Use VLC |
| Reported as 0 bytes | The copy never finished | Copy it again |
| Header shows the wrong length | Interrupted write | Remux to rebuild the Info element |
Matroska was designed to survive partial damage. Clusters carry their own timestamps, so players meeting a bad patch skip to the next Cluster and keep going. That is why broken MKV files usually play most of the way rather than refusing outright.
Be careful with repair tools that re-encode. A tool that rebuilds the index leaves your video untouched. A tool that re-encodes to “repair” the file hands you a softer picture and calls it a fix. Read what it says it is doing before you start.
Keep MKV for the copy you are storing and send MP4 to other people. The container costs nothing to keep, and it is the only one that holds everything you already have.
Storing and sending pull in opposite directions, and reading them as one question is why people convert libraries they should have left alone.
For storage, MKV wins on a point nothing else matches. It is the only common container holding every track, every subtitle format, the fonts they need and the chapter structure, all at once. Converting away from it throws some of that out permanently.
For sending, MP4 wins on reach. Phones you have never seen, hotel televisions, a colleague's tablet. MP4 plays; MKV is a coin toss.
Archive it. Nothing else holds the subtitles, fonts and chapters together.
Remux a copy. Seconds, no quality lost and it plays on anything.
Everything on this page in one block: names, extensions, media types and the two RFCs that define this format.
Directories file this under the MKV file type, and the file type is what decides your answer. The file extension MKV file managers show has meant one thing since 2002: the Matroska container is what wrote it.
| Item | Value |
|---|---|
| Extensions | .mkv video, .mka audio, .mks subtitles, .mk3d stereoscopic |
| Full name | Matroska Video |
| Container syntax | EBML, a binary equivalent to XML |
| Announced | 6 December 2002, by Steve Lhomme |
| Forked from | The Multimedia Container Format, over using EBML |
| Named after | Matryoshka, the Russian nesting doll |
| Container standard | RFC 9559, October 2024, Standards Track |
| Syntax standard | RFC 8794, July 2020, Standards Track |
| RFC authors | S. Lhomme, M. Bunkus, D. Rice |
| Media types | video/matroska, audio/matroska, video/matroska-3d |
| Doc type in the header | Must read matroska |
| Integer element length | Zero to eight octets, so 64 bits |
| Web profile | WebM, announced 19 May 2010 |
Structure, header rules and media types come from RFC 9559, published by the IETF in October 2024. The EBML description and the eight-octet integer length come from RFC 8794, July 2020. The founding date and the MCF fork come from the Matroska project record. The Windows playback dates come from the Windows 10 preview announcements, and the WebM dates from Google's own launch.
Install VLC. Free on all systems, and it carries its own decoders. See section 4.
Remux to MP4. Seconds, no quality lost. Section 9 is the sequence.
Comparing video containers? MP4 files are what most devices want, AVI files came out of Microsoft years earlier and FLV files carried web video before either of them won.
Working with audio instead? MP3 files and WMA files hold sound alone, and an .mka file is this same container doing the same job.
Stuck on your computer rather than your file? Our Windows fixes and macOS guides cover the system side, including file associations.
New to all of this? What a file format is covers the ground under it, and our file format guides list the rest.
Found an MKV file that behaves in a way nothing here explains? Send us what your player reports and we will tell you which track is the problem.