How to convert MKV to MP4 on Mac without losing quality
Convert MKV to MP4 on your Mac without re-encoding — remux with ffmpeg for zero quality loss, or drag-and-drop with Zumkor. Offline, batch, no upload.
Zumkor converts videos to MP4, MOV, M4V, or MKV on your Mac — free for 7 days, batch whole folders, 100% offline. Then one-time $19.99, yours forever. Needs macOS 14+ on an Apple silicon Mac — any M-series machine.
Download on the App Store Zumkor for MacYou double-click an MKV file on your Mac and QuickTime shrugs. Maybe it opens with no video, maybe no sound, maybe it just refuses. So you want to turn it into an MP4 — the format QuickTime, Photos, iMovie, iMessage, and basically every device on earth will play without complaint.
Here’s the good news most guides bury: converting MKV to MP4 usually does not require re-encoding, which means it can be done in seconds with zero quality loss. Understanding why is the difference between a 3-second conversion and a 40-minute one that makes your video look worse.
MKV and MP4 are containers, not video
This is the key idea. MKV (Matroska) and MP4 are containers — think of them as boxes. Inside the box are separate streams: a video stream (often H.264 or H.265/HEVC), one or more audio streams (AAC, AC3, Opus…), and sometimes subtitles.
QuickTime’s problem is almost never the video itself — it’s the box. QuickTime doesn’t read the MKV box, but the H.264 video inside it is something it plays perfectly. So in most cases you don’t need to re-encode the video at all. You just need to move the streams into a new box. That operation is called remuxing, and because it copies the streams bit-for-bit, the output is identical to the input.
You only need to actually re-encode (which is slow and lossy) when a stream inside the MKV is something MP4 can’t hold or your Mac can’t play — for example VP9 video or Opus audio. That’s the exception, not the rule.
First: if you just want to watch it, don’t convert at all
Half of “how do I convert MKV” searches are really “how do I play MKV on a Mac” — and playing needs no conversion. Two free players open Matroska files natively:
- IINA — the modern, Mac-native choice. Open source, built on mpv, plays essentially every MKV you’ll meet, handles chapter markers and multiple audio tracks, and looks like it belongs on macOS. If MKV files are a regular part of your life, make IINA the default app for them (right-click a .mkv → Get Info → Open with → IINA → Change All).
- VLC — the old warhorse. Less pretty, equally capable, and it’s probably already installed.
Both also handle the things MKV is good at — soft subtitle tracks you can toggle, multiple audio languages — better than any MP4 conversion will.
So convert only when the file has to leave the Mac-with-a-good-player bubble: importing into Photos or iMovie, sending over iMessage, uploading to a form that demands MP4, or playing on a TV, console, or someone else’s machine. If the destination is your own screen, install IINA and you’re done in the time a conversion would take to start.
Method 1: ffmpeg remux — instant, lossless (the right way)
If you have Homebrew, install ffmpeg once:
brew install ffmpeg
Then remux — copy every stream into an MP4 without touching quality:
ffmpeg -i input.mkv -c copy output.mp4
The magic is -c copy (“copy all codecs”). No re-encoding, no quality loss, and a full-length movie converts in a few seconds because your Mac is just repackaging data, not crunching pixels.
To convert a whole folder of MKV files at once:
cd ~/Movies/mkv
for f in *.mkv; do
ffmpeg -i "$f" -c copy "${f%.mkv}.mp4"
done
If that command errors with something about the codec not being supported in MP4, you’ve hit the exception case — the MKV holds VP9/Opus or similar. Then you re-encode the offending stream, for example:
# Re-encode audio to AAC, keep the video stream as-is:
ffmpeg -i input.mkv -c:v copy -c:a aac -b:a 192k output.mp4
ffmpeg is free, scriptable, and the gold standard. Its only downside is that it’s a command line — no preview, cryptic errors, and you have to know which flag to reach for when a remux fails.
Method 2: VLC (free, graphical, but fiddly)
VLC plays MKV directly, and it can also convert:
- File → Convert / Stream…
- Drag in your MKV.
- Choose a profile like Video - H.264 + MP3 (MP4).
- Set an output file ending in
.mp4and click Save.
VLC works, but two catches: its default profiles usually re-encode (slower, and a quality hit unless you tune the bitrate), and the conversion UI is famously unintuitive. Fine in a pinch if you already have VLC; not something to install just for this.
Method 3: HandBrake — powerful, but it always re-encodes
HandBrake is a superb tool, but it’s the wrong tool for this specific job. HandBrake is a transcoder — it re-encodes by design. Point it at an MKV and even at high quality settings you’ll wait many minutes and lose a little fidelity, all to accomplish something a remux does instantly and perfectly.
Reach for HandBrake when you actually want to re-encode — to shrink a file, change resolution, or convert an incompatible codec. For a straight MKV→MP4 where the codecs are already compatible, it’s overkill.
Method 4: Zumkor — drag, drop, done
If the command line isn’t your thing and you don’t want to wrestle with VLC’s export dialog, Zumkor does the sensible thing automatically (it needs macOS 14 or later on an Apple silicon Mac — any M-series machine):
- Open Zumkor and drag in your MKV file, or a whole folder of them.
- Pick MP4 as the output.
- Click Convert.
Zumkor remuxes when it can (fast, lossless) and only re-encodes the specific stream that needs it — so you get the QuickTime-friendly MP4 without having to know what H.264, VP9, or Opus even are. It runs entirely on your Mac, batches an entire folder in one pass, and works offline, so a folder of MKVs never has to go near a cloud uploader.
It’s free for 7 days, then a one-time $19.99 purchase — no subscription. The honest trade-off is the same as always: if you’re comfortable in Terminal and only do this occasionally, ffmpeg -i in.mkv -c copy out.mp4 is free and excellent. Zumkor is for people who’d rather drag a folder than memorize flags — and who are also converting images and audio and don’t want a different utility for each.
Why your MP4 might have no sound (and how to avoid it)
The most common MKV→MP4 gotcha: the video plays but there’s no audio. That happens when the MKV’s audio track is a codec MP4 doesn’t support (often AC3 or DTS from a video rip) and you remuxed with -c copy, which faithfully copied an audio stream your player can’t decode.
The fix is to re-encode just the audio to AAC (universally supported) while still copying the video losslessly — the -c:v copy -c:a aac command from Method 1. Zumkor detects this automatically and converts the audio track for you; with ffmpeg you specify it yourself.
What happens to the subtitles
MKV is the container of choice for subtitled video, so this bites often: you convert to MP4 and the subtitles are gone.
The cause is the container swap. MKV carries subtitles as separate, toggleable tracks — usually text-based (SRT or ASS), sometimes picture-based (PGS from Blu-ray rips, VOBSUB from DVDs). MP4’s subtitle support is far narrower: a plain -c copy remux either fails on the subtitle stream or drops it, and even correctly-embedded MP4 text subtitles (-c:s mov_text in ffmpeg) are ignored by a surprising number of players.
The robust play is to keep subtitles outside the video file:
- Extract the track to a sidecar
.srtfile and keep it next to the MP4 with the same filename. IINA, VLC, Plex, Infuse, and most TVs load it automatically. Zumkor extracts embedded text-subtitle tracks straight to SRT or VTT (VTT is what web players want), and it converts SRT ↔ VTT both ways. - Picture-based subtitles (PGS/VOBSUB) can’t become text without OCR, which neither a remux nor Zumkor performs. If the MKV’s subtitles are picture-based and you need them, the pragmatic answer is to keep the MKV and watch it in IINA or VLC, which render them natively. One alternative worth knowing: on macOS 26 or later, Zumkor can create brand-new toggleable captions by listening to the audio — its “Create subtitles from speech” preset runs Apple’s on-device speech recognition and saves an SRT or VTT sidecar. That’s a fresh transcription generated from the soundtrack, not a conversion of the PGS track (the original styling and positioning aren’t preserved), and it happens entirely on your Mac, nothing uploaded.
If you don’t care about subtitles, ignore all of this — the remux just works. But extract before you delete the MKV: the original file is the only place those tracks live.
Bottom line
- Just want to watch it on your Mac: IINA (or VLC), free — no conversion needed at all.
- The right default when you do convert: remux with
ffmpeg -i input.mkv -c copy output.mp4. Seconds, and zero quality loss. - No sound after converting: re-encode just the audio to AAC, keep the video as a copy.
- Subtitles you care about: extract the track to a sidecar .srt/.vtt before trusting MP4 with them.
- You already have VLC: its Convert dialog works, but tends to re-encode.
- Skip HandBrake for plain container swaps — it re-encodes when you don’t need it to.
- Prefer dragging a folder over typing flags: Zumkor picks remux-vs-re-encode for you, batches the lot, and never uploads a thing — free for 7 days.
Once your video plays, the next question is usually size — see how to compress a video to email it on Mac.
FAQ
Why won’t QuickTime play MKV files on my Mac?
QuickTime has never supported the Matroska (MKV) container, even though the H.264 or HEVC video inside is usually something it decodes fine. You have two fixes: play the MKV directly with a free player like IINA or VLC, or remux it into an MP4 container — a seconds-long, lossless operation when the codecs are compatible.
Can I convert MKV to MP4 without losing quality?
Yes, in most cases. If the MKV contains H.264/HEVC video and AAC audio, a remux (ffmpeg -c copy, or Zumkor’s automatic stream copy) moves the streams into an MP4 bit-for-bit — zero quality loss, finished in seconds. Re-encoding is only required when a stream is MP4-incompatible, like VP9 video or Opus/AC3/DTS audio, and even then you can usually copy the video and re-encode only the audio.
How do I batch convert a folder of MKV files to MP4 on a Mac?
In Terminal, loop ffmpeg over the folder: for f in *.mkv; do ffmpeg -i "$f" -c copy "${f%.mkv}.mp4"; done — and handle any codec errors file by file. Or drag the whole folder into Zumkor, pick MP4, and click Convert: it remuxes what it can, re-encodes only the streams that need it, and processes everything offline in one pass.