Manatee

How to convert MKV to MP4 on a Mac without losing quality

Converting MKV to MP4 without any quality loss is possible whenever the video inside the MKV is H.264 or HEVC, which covers most files: the video and audio streams are copied unchanged into an MP4 container, a process called remuxing that takes seconds and alters nothing. When the MKV holds codecs MP4 cannot carry (some audio formats, styled subtitles, certain video codecs), at least that stream has to be re-encoded, and the goal becomes keeping the loss invisible. This post covers how to tell which case you have and how to do each on a Mac.

Container versus codec, in one paragraph

MKV and MP4 are containers: boxes that hold a video stream, one or more audio streams, and sometimes subtitles. The streams are the actual content, compressed with a codec such as H.264, HEVC, AAC, or AC-3. Quality lives in the streams. If you move the streams from one box to another without touching them, quality cannot change, because the bytes that describe every frame are identical. That is a remux. If you decode a stream and compress it again, that is a re-encode, and every re-encode loses something. container-vs-codec-why-an-mp4-can-still-refuse-to-play goes deeper.

The MKV container is more permissive than MP4. It will hold almost any codec. MP4 is pickier, and that is the whole reason a conversion is sometimes not lossless.

Find out what is inside your MKV

Before converting, look at the streams. Two ways:

  1. An open-source media player. Open the MKV and look for a media information or codec details window. It lists each stream with its codec: for example Video: H.264, Audio: AAC, Subtitle: ASS.
  2. Terminal with ffprobe, if you have ffmpeg installed (see the next section). Type ffprobe and drag the file onto the window, then press Return. The Stream lines near the bottom show the codecs.

Then check against what MP4 accepts and Macs play:

  • Video: H.264 or HEVC (H.265). Copy unchanged. Lossless.
  • Video: VP9 or AV1. MP4 can technically hold these, but QuickTime and most devices will not play the result. Re-encode the video to H.264 or HEVC for a file that actually works.
  • Audio: AAC, MP3, AC-3. Copy unchanged.
  • Audio: FLAC, Vorbis, Opus, DTS, TrueHD. Not reliably supported in MP4 by Apple players. Re-encode the audio to AAC. Video stays untouched.
  • Subtitles: SRT. Can be converted to MP4’s text subtitle format. ASS or SSA styled subtitles cannot be carried in MP4 at all; drop them, or keep a separate SRT file. how-to-convert-ass-or-ssa-subtitles-to-srt-on-a-mac covers that.

Most MKVs from cameras, screen recorders, and downloads are H.264 or HEVC with AAC or AC-3 audio, which means a pure remux.

The lossless way: remux with ffmpeg in Terminal

ffmpeg is the open-source engine behind most converters. It is not installed on a Mac by default; a package manager such as Homebrew installs it with one command, or you can download a build from the ffmpeg project site.

To remux everything unchanged:

  1. Open Terminal.
  2. Type ffmpeg -i and drag the MKV onto the window.
  3. Type -c copy followed by a name for the output ending in .mp4, for example ~/Desktop/movie.mp4.
  4. Press Return. For a feature-length file this takes a few seconds, because nothing is being decoded.

-c copy means copy every stream as is. If ffmpeg stops with an error about a codec not being supported in MP4, the MKV contains one of the incompatible streams above. Adjust:

  • Copy the video, re-encode only the audio: replace -c copy with -c:v copy -c:a aac -b:a 192k.
  • Drop subtitles that MP4 cannot hold: add -sn.
  • Convert SRT subtitles to MP4’s format instead of dropping them: add -c:s mov_text.

The result has exactly the same picture as the MKV, frame for frame, because the video bytes were never touched. Open it in QuickTime to confirm it plays, and compare file sizes: a remux is within a fraction of a percent of the original.

When you need to re-encode the video

If the MKV is VP9 or AV1, or a very old MKV with a codec QuickTime does not know, the video has to be re-encoded to H.264 or HEVC. This cannot be lossless, but it can be close enough that nobody will see a difference.

The ffmpeg command for a high-quality H.264 re-encode:

ffmpeg -i input.mkv -c:v libx264 -crf 18 -preset slow -c:a aac -b:a 192k output.mp4

The -crf number sets quality: 18 is visually transparent for most content, 23 is the default and still good, higher numbers mean smaller files and more loss. The -preset slow trades encoding time for efficiency; medium is fine if you are in a hurry. For HEVC, swap libx264 for libx265 and use -crf 22 for a similar result in roughly half the size, with the caveat that very old devices will not play HEVC.

Expect this to take a while: a re-encode runs at a few times real time on Apple silicon and slower on Intel, so an hour of video might take ten to twenty minutes.

The drag-and-drop way

If Terminal is not where you want to spend the afternoon, Manatee does the conversion from its window or a drag onto its menu bar icon:

  1. Open Manatee and choose Convert.
  2. Pick MP4 as the target.
  3. Drop the MKV in, or a whole folder of them. Each file shows in the job list with progress.
  4. The MP4 is written alongside the original; the MKV is untouched.

Manatee takes care of the codec decisions, so an MKV with DTS audio or ASS subtitles comes out as an MP4 that plays in QuickTime and on phones without you editing a command. It runs entirely on the Mac with nothing uploaded, and it bundles its own copy of ffmpeg so there is nothing to install. Two honest notes: if you need a guaranteed byte-for-byte stream copy and want to verify it yourself, the -c copy route above is the one that gives you that certainty; and Manatee is a converter, not an editor, so trimming, cropping, and subtitle styling stay in other apps.

Once you have the MP4, if it also needs to be smaller for a message or an upload, Manatee’s Shrink mode lets you name a target size in megabytes and finds the quality that fits. Shrinking is a re-encode, so do it once, from the best source you have; why-compressing-a-video-twice-makes-it-look-worse explains why.

Questions

Why is my MP4 the same size as the MKV?

Because a remux changes only the container. The streams, which are nearly all of the bytes, are identical. A smaller MP4 means something was re-encoded; a same-size MP4 is the sign of a lossless conversion.

Can I just rename the .mkv file to .mp4?

No. The extension is a label; the container structure is different. Some players will ignore the name and play it anyway, but QuickTime, Photos, and phones will refuse. The remux takes seconds and produces a real MP4.

The MP4 plays but has no sound.

The audio stream was a format Apple players do not decode, most often DTS or Vorbis, and it was copied unchanged. Redo the conversion with the audio re-encoded to AAC (-c:v copy -c:a aac), or let Manatee pick.

The MKV would not open at all on the Mac. Is that a conversion problem?

Sometimes it is just the format, and converting fixes it. If the file also fails in a player that supports MKV, the file is damaged, and mkv-file-won-t-open-on-mac-how-to-fix-or-convert-it covers the repair route.