Key takeaways
- MKV is a container, explicitly not a compression format, so an MKV that will not play is almost never a problem with the MKV part.
- Android's own documentation lists Matroska support per codec rather than as a blanket container capability, which is why one MKV plays and another does not on the same phone.
- The three usual culprits inside an MKV are 10-bit HEVC, AV1 on hardware that has no AV1 decoder, and an audio track in a format intended for home-cinema equipment.
- If only the audio track is unsupported, remuxing to swap or drop that track is fast and lossless — you do not need to re-encode the video.
- No app can decode a format the device has no decoder for; a player that ships its own software decoders can sometimes help, at a cost in battery and heat.
If an MKV will not open, the MKV part is almost certainly not the problem.
Matroska's own documentation is blunt about what it is: an audiovisual data container format, "an envelope in which there can be many audio, video, and subtitles streams", and — stated in capitals on the same page — NOT a video or audio compression format. The container is a box. Something inside the box needs a decoder your device does not have.
That reframing is the whole fix, because it changes what you go looking for.
Why MKV in particular collects difficult files
Matroska is deliberately permissive. It is built on EBML, designed to be modularly expandable, and it will carry essentially any combination of video, audio, subtitle and chapter tracks you care to put in it. Since October 2024 it has had a formal IETF specification, RFC 9559, produced by the CELLAR working group.
That flexibility is why the format is popular for archival and for anything with multiple audio languages and subtitle tracks. It is also why "MKV does not work on my phone" is such a common complaint, and the causality is worth stating plainly: MKV attracts awkward contents because it is the container that accepts them. A format that refused exotic codecs would have a better reputation and be less useful.
An MP4 containing H.264 and AAC and an MKV containing HEVC Main 10 and a home-cinema audio track are not two formats with different reliability. They are two boxes, one of which happens to contain things a phone can decode.
What Android's own documentation actually says
This is the detail that explains the inconsistency people experience, and it is easy to miss.
Android's supported media formats page does not list Matroska once as a supported container. It lists it per codec, with version qualifiers. VP8 in Matroska is noted from Android 4.0. Vorbis in Matroska from Android 4.0. MP3 in Matroska from Android 10. H.264, H.265, VP9 and AV1 each carry their own Matroska entries.
Read that structure and the picture resolves: there is no single "MKV support" switch on Android. There is a matrix of codec-plus-container-plus-version capabilities, plus whatever the manufacturer's chipset adds on top. Two MKVs on the same phone genuinely can behave differently, and neither file is broken.
The MP3-in-Matroska line is a nice illustration of how specific this gets. MP3 is ancient and universally supported; Matroska is widely supported; and yet the combination is documented from Android 10. Container and codec are separate capabilities and the intersection has to be supported explicitly.
The three usual culprits inside an MKV
Rather than working through every possible failure, check these first. In current files they cover most of it.
1. 10-bit HEVC. H.265 exists in 8-bit and 10-bit profiles, and hardware can support one without the other. A device that plays HEVC video perfectly well will show a black rectangle for HEVC Main 10 content if its decoder does not cover that profile. The codec name in the file information is identical. The support is not. This is the single most common cause of the audio-plays-picture-does-not symptom in modern MKV files.
2. AV1 on hardware with no AV1 decoder. AV1 is increasingly common, platform-level decoding arrived comparatively recently, and hardware decoders reached mobile silicon later still. On many devices AV1 runs in software, which means it may play and stutter rather than fail cleanly — and at 4K it often cannot keep up at all. AV1 on Android covers what support means for that codec specifically.
3. Audio prepared for a living room. Matroska is the container of choice for files ripped or assembled for home-cinema playback, and those carry audio tracks intended for equipment that decodes them. A handset was never in scope. If the picture is fine and there is no sound, this is almost always why.
A fourth, non-fatal one worth knowing: subtitle tracks the player cannot render. Heavily styled ASS typesetting or image-based tracks from discs will not stop the video playing; they will simply not appear. That is a separate problem with a separate diagnosis, covered in subtitles not working on Android.
Finding out what is inside
You cannot fix this by guessing at the extension. You need the track list.
On a computer, media inspection tools will list every track with its codec, profile, bit depth, resolution, frame rate and language. This takes about fifteen seconds and removes all of the guesswork from everything below. If you have the file on a computer at any point, do this first.
On the phone, your options are narrower. Some players surface stream information; many do not, or surface only a summary. What you can do without any tool is read the failure:
- Sound, no picture — the video track.
- Picture, no sound — the audio track.
- Plays but stutters, getting worse over time — software decoding plus thermal throttling, not an unsupported format. Hardware and software decoding compared explains that distinction.
- Nothing opens at all — either the container is genuinely unsupported on that device, or the file is damaged. Check the size against the source; a truncated download fails immediately rather than partially.
Remux before you transcode
This is the MKV-specific advice that saves the most time, and it is under-known.
Because Matroska is a container, changing what is in it does not require re-encoding what is in it. Remuxing copies the existing compressed streams into a new container, or into the same container with a different set of tracks. It is fast — minutes rather than hours — and lossless, because nothing is decoded and re-encoded.
So if your diagnosis is "the video is fine and the audio track is the problem", the fix is not to convert the whole film. It is to remux, dropping or replacing the offending audio track. Same picture quality, same file in every respect that matters, playable.
Remuxing an MKV into an MP4 also sometimes helps on its own, where a device's support for a codec is stronger in one container than another — which, given the per-codec-per-container matrix above, is a real phenomenon rather than superstition.
Transcoding is the fallback, not the first move. Re-encoding to H.264 in an MP4 with AAC audio is the combination least likely to surprise any device, and it costs you some quality and a great deal of time. Reach for it when the video track itself cannot be decoded. Remuxing versus transcoding covers the distinction and when each is appropriate, and video codecs explained covers what you are trading when you re-encode.
What a player can and cannot do about this
Video Player All Formats PRO opens MP4, MKV and MOV alongside M4V, WebM, 3GP, FLV, TS and M2TS, and is built for H.264, H.265, VP8, VP9 and AV1 video with AAC, MP3, FLAC and Ogg audio.
That list is a statement about what the app will attempt, and we attach the same caveat to it everywhere it appears, including here: what actually plays depends on the file and the decoders your device provides.
That is not a hedge. It is the architecture. A player is a piece of software that finds the tracks in a container, hands each one to a decoder, and puts the results on the screen in sync. When no decoder exists for a track, there is nothing for the player to hand it to. Any app claiming universal MKV playback is claiming something the hardware does not let it deliver, and the way to test that claim is your own file rather than a feature list.
Where player choice does legitimately matter is whether an app bundles its own software decoders as a fallback. That can open files the system rejects, at a real cost: software decoding is slower, hotter and harder on the battery, and it falls apart at high resolutions. It is a trade worth making for one important file and not worth making as a default. Android video players compared sets out how different players position themselves on exactly that question, including where ours does not compete.
Once a file does play, the rest is interface. Speed runs from 0.1x to 3.0x in 0.1x steps, resume brings you back to where you stopped, recent videos and favourites keep unfinished files close, and gestures handle seeking, volume, brightness and a screen lock for long content. Picture-in-Picture is available on supported devices, since it is a platform capability rather than something an app can add. No account is needed for local playback, and positions, history and favourites are stored on the device.
The ladder
- Note the failure signature. Sound, picture, stutter or nothing — that names the track.
- Get the track list if you can reach a computer. Codec, profile, bit depth.
- Check the usual three: 10-bit HEVC, AV1 without hardware, home-cinema audio.
- Remux if the problem is the audio track or the container. Fast and lossless.
- Try a player with software decoding if the video codec is the problem and it is one file.
- Transcode to H.264 in MP4 if you need it to work on that device permanently.
- Reduce the resolution if it plays but stutters. A software decode that cannot manage 4K often manages 1080p comfortably.
The containers themselves are covered in video file formats explained. Everything we make in this area is under video and utility apps, and the rest of these articles under video and utility articles.
Good to know
Frequently asked questions
Is MKV a codec or a container?
Does Android support MKV natively?
Why does an MKV play sound but no picture?
What if the picture plays but there is no sound?
Which app plays MKV on Android?
Sources
- Matroska basics — technical specifications (opens in a new tab)Matroska.org — accessed
- RFC 9559: Matroska Media Container Format Specification (opens in a new tab)IETF (CELLAR Working Group) — accessed
- Supported media formats (opens in a new tab)Android Developers — accessed
- Matroska (opens in a new tab)Wikipedia — accessed
About the author
Reign Creative LLC — The independent app studio that builds the apps covered on this site and publishes every article here. On Google Play it publishes as Reign Collective Apps.
We use AI tools to help research, draft and edit our articles. Each article lists the sources its factual claims rely on, and details about our apps come from their live Google Play listings. No article on this site has been reviewed by an independent expert unless the reviewer is named on it.
Spotted an error? Tell us — how corrections are handled is set out in our editorial policy.