How to Convert MKV to MP4
MKV (Matroska Video) is a flexible container that holds multiple video, audio, and subtitle streams. It’s popular for archiving movies and TV shows because of its features. The downside: it doesn’t play natively on iPhone, most smart TVs, or older media players. MP4 plays everywhere. Conversion is usually fast and lossless.
The fastest path: HandBrake (free, the standard)
HandBrake is free open-source video software. It handles MKV-to-MP4 conversion cleanly:
- Install HandBrake (Windows/Mac/Linux)
- Open HandBrake, drag in your MKV file
- Choose preset: “Fast 1080p30” or match the source
- Set the format: MP4 (the file extension)
- Set output filename ending in
.mp4 - Click Start Encode
For typical MKV files (H.264 video + AAC audio), HandBrake produces an MP4 with the same quality as the source — often the same exact video stream just in a different container.
When conversion is essentially free (no re-encoding)
If the MKV contains H.264 video and AAC audio (the same codecs used in MP4 by default), the conversion can copy the streams without re-encoding. This is called “remuxing” — changing the container without touching the content.
Using ffmpeg (free command-line, the gold standard):
ffmpeg -i input.mkv -c copy output.mp4
This produces an MP4 in seconds — just a container change. No quality loss. Same file size.
Using HandBrake: doesn’t have a “copy” mode for video by default; it always re-encodes. Use ffmpeg for true lossless remux.
When re-encoding is needed
If the MKV contains codecs not supported in MP4:
- HEVC/H.265 video: technically supported in MP4 but with poor compatibility. Re-encoding to H.264 makes it play on more devices.
- AC3, DTS, FLAC audio: re-encoding to AAC for MP4 compatibility
- Custom subtitle formats: MP4 has limited subtitle support; may lose subtitles or need to convert format
HandBrake handles re-encoding. ffmpeg with specific options:
ffmpeg -i input.mkv -c:v libx264 -c:a aac output.mp4
This re-encodes video and audio. Takes longer than copy mode but produces a fully compatible MP4.
Subtitles in MKV
MKV often stores subtitle tracks (SRT, ASS, PGS). MP4 supports a limited subset:
Soft subtitles (selectable): MP4 supports MOV-text and TX3G. SRT can be converted to these.
Hard subtitles (burned in): visually burn subtitles into the video before export. They’re always visible but always there.
Image subtitles (PGS, VobSub): harder to translate to MP4 cleanly. Either burn in or extract to separate SRT files.
HandBrake’s subtitle tab handles most subtitle conversions. For specific subtitle workflows, ffmpeg with subtitle filters offers more control.
Multiple audio tracks
MKV often has multiple audio tracks (different languages, commentary). MP4 supports multiple audio tracks too:
In HandBrake’s Audio tab:
- Add each desired audio track
- Configure each separately (or set “passthrough” to preserve)
Default behavior usually keeps just the first or main audio track. Manual addition for the rest.
On phone
For converting MKV on a phone:
iPhone: limited native MKV support. Apps:
- “Media Converter” (free with ads)
- “Video Format Converter” — various developers
Android: similar landscape:
- “Video Converter” (free)
- “Format Factory” mobile
For one-time conversions, phone apps work. For regular conversion work, HandBrake on desktop is much better.
In your browser
Browser-based MKV-to-MP4 conversion isn’t reliable yet. The container conversion is feasible in principle (mux/demux operations could happen in JavaScript), but the tools that exist are slow or upload to a server.
For now, the desktop path is the right answer for MKV conversion.
Quality preservation tips
If you must re-encode:
- Match the source resolution (don’t unnecessarily upscale or downscale)
- Match the source bitrate or use lossless quality settings
- Use CRF 18-20 in HandBrake/ffmpeg for “visually lossless” quality
- Avoid lower bitrates unless file size is critical
For lossless remux (just changing container), no quality concerns — you’re copying exact streams.
File size expectations
- Remux only: same size as source (within MB)
- Re-encode at similar quality: 80-110% of source size
- Re-encode aggressively: 50-70% of source
If your MKV was 4 GB and your MP4 is suddenly 1 GB, you re-encoded with significant compression. If you’re 4 GB and 3.5 GB, that’s normal re-encode shrinkage.
TL;DR
- MKV → MP4 rarely needs re-encoding if streams are compatible
- Best tool: HandBrake (free, GUI) or ffmpeg (command-line)
- Lossless remux:
ffmpeg -i input.mkv -c copy output.mp4 - Re-encode when needed: HandBrake with appropriate preset, or ffmpeg with codec args
- Phone: limited; better on desktop
- MP4 plays everywhere; MKV doesn’t
- For audio extraction afterward: MP4 to MP3