Can You Really Convert MKV to MP4 Without Quality Loss?
Yes — but only under specific conditions. The key concept is remuxing: repackaging the video and audio streams from one container (MKV) into another (MP4) without touching the compressed data. Since the actual video and audio bits remain identical, the result is zero quality loss.
Think of it like moving books from a cardboard box to a plastic bin. The books (your video and audio data) are untouched — only the container changes. This process is nearly instant because no encoding or decoding occurs.
However, remuxing only works when the codecs inside your MKV are compatible with the MP4 container. When they're not, re-encoding is required — and that's where quality considerations come in.
When Remuxing Works (Zero Quality Loss)
Remuxing is possible when your MKV contains codecs that MP4 supports natively:
| MKV Contents | Remux to MP4? | Quality Loss |
|---|---|---|
| H.264 video + AAC audio | Yes — direct remux | Zero |
| H.265 video + AAC audio | Yes — direct remux | Zero |
| H.264 video + MP3 audio | Yes — direct remux | Zero |
| H.264 video + DTS audio | Partial — audio must be re-encoded | Audio only (video untouched) |
| H.264 video + FLAC audio | Partial — audio must be re-encoded | Audio only (video untouched) |
| VP9 video + Opus audio | No — full re-encode needed | Minimal with CRF 23 |
The FFmpeg command for a lossless remux is remarkably simple:
ffmpeg -i input.mkv -c copy -movflags +faststart output.mp4
The -c copy flag tells FFmpeg to copy all streams without re-encoding. The -movflags +faststart moves the MP4's metadata to the beginning of the file, enabling instant web playback.
When Re-encoding Is Needed
Re-encoding is required when your MKV contains codecs that MP4 doesn't support or supports poorly:
Incompatible Audio Codecs
The most common scenario. Many MKV files from Blu-ray rips contain DTS, DTS-HD Master Audio, Dolby TrueHD, or FLAC audio — none of which are supported in MP4. These must be re-encoded to AAC:
ffmpeg -i input.mkv -c:v copy -c:a aac -b:a 192k -movflags +faststart output.mp4
Note: -c:v copy keeps the video stream untouched (zero video quality loss). Only the audio is re-encoded. AAC at 192 kbps is transparent quality for the vast majority of listeners.
Incompatible Video Codecs
If your MKV contains VP9, VP8, Theora, or other codecs that MP4 doesn't handle well, the video must be re-encoded to H.264 or H.265:
ffmpeg -i input.mkv -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 192k -movflags +faststart output.mp4
Subtitle Handling
MKV supports advanced subtitle formats (SSA/ASS, PGS) that MP4 cannot contain. During conversion:
- Text subtitles (SRT): Can be kept as a sidecar .srt file or embedded as MP4 mov_text
- Styled subtitles (ASS/SSA): Must be burned into the video (hardcoded) or stripped
- Bitmap subtitles (PGS): Must be burned in or stripped (cannot be converted to text)
What Is CRF 23 and Why It's "Visually Lossless"
When re-encoding is necessary, quality depends on the CRF (Constant Rate Factor) value. CRF is a single number that controls output quality for H.264 and H.265 encoders:
- CRF 0: Mathematically lossless (enormous files, 10–50x larger)
- CRF 18: Visually transparent — virtually no perceptible quality loss
- CRF 23: Default. Excellent quality, imperceptible loss for 99% of content
- CRF 28: Good quality, smaller files, some loss visible in demanding scenes
- CRF 33+: Noticeable degradation, mainly for previews or low-priority content
CRF 23 is the sweet spot for MKV-to-MP4 conversion: the output is visually indistinguishable from the original for virtually all real-world content. Only side-by-side pixel-level comparison on a calibrated monitor would reveal differences, and even then only in specific high-detail scenes.
File size after re-encoding: When converting from an older codec (VP9, Xvid) to H.264 at CRF 23, the output may actually be smaller than the original while maintaining equivalent quality. H.264 is remarkably efficient.
How to Check Your MKV's Codecs Before Converting
Knowing what's inside your MKV helps you predict whether remuxing or re-encoding will occur:
Using FFprobe (Command Line)
ffprobe -v error -show_entries stream=codec_type,codec_name -of csv=p=0 input.mkv
Example output:
video,h264— H.264 video (remuxable)audio,dts— DTS audio (needs re-encoding to AAC)subtitle,ass— ASS subtitles (will be stripped or burned in)
Using VLC (GUI)
Open the MKV in VLC, go to Tools > Codec Information (or press Ctrl+J). The "Codec" field for each stream tells you exactly what's inside.
Using MediaInfo (GUI)
MediaInfo provides the most detailed view: codec, bitrate, channels, resolution, frame rate, and more. Available free for Windows, Mac, and Linux.
How Our Converter Handles MKV to MP4
Our converter automatically detects the codecs inside your MKV file and chooses the optimal approach:
- Compatible codecs (H.264/H.265 + AAC): Streams are copied directly — zero quality loss, fast processing
- Incompatible audio (DTS, FLAC, Opus): Video is copied (lossless), audio is re-encoded to AAC 192k
- Incompatible video (VP9, VP8, Theora): Full re-encode to H.264 CRF 23 + AAC 192k
The output always includes -movflags +faststart for instant web playback. The entire process is designed to preserve maximum quality with minimum file size overhead.
What you may lose: Multiple audio tracks (only the default track is kept), advanced subtitles (ASS/PGS are dropped), embedded fonts, and nested chapter markers may be simplified. If these features matter, keep the original MKV as your archive copy.