Codec Compatibility Matrix
Shows which codecs (H.264, H.265, AV1, VP9 and more) fit in which containers (MP4, MKV, MOV, WebM, AVI, TS, FLV).
| Container | H.264 | H.265 | AV1 | VP9 | MPEG-4 | ProRes | AAC | MP3 | Opus |
|---|---|---|---|---|---|---|---|---|---|
| .mp4 | ✓ | ✓ | ✓ | △ | ✓ | △ | ✓ | ✓ | △ |
| .mkv | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| .mov | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | △ | ✗ |
| .webm | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ |
| .avi | ✓ | △ | ✗ | ✗ | ✓ | ✗ | △ | ✓ | ✗ |
| .ts | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ | ✓ | ✓ | ✗ |
| .flv | ✓ | ✗ | ✗ | ✗ | △ | ✗ | ✓ | ✓ | ✗ |
- MP4 + VP9: Technically possible but non-standard; can cause browser compatibility issues
- MP4 + ProRes: Playable on macOS but not recommended for general use
- MP4 + MP3: Defined in the MP4 standard; FFmpeg writes it without problems
- MP4 + Opus: Relatively new support; some players do not support it yet
- MOV + AV1: FFmpeg cannot write AV1 into MOV (it stops with “av1 only supported in MP4 and AVIF”); put AV1 in MP4, MKV or WebM. Apple chips added hardware AV1 decoding with the A17 Pro (iPhone 15 Pro) and the M3
- AVI + H.265: Unofficial support only; works in VLC and some other players
- MKV is the most flexible container and can hold virtually any codec combination
How to use
- Pick the container you needMP4 plays on almost every device.
- Check the codecsThe table shows ✓ (supported), △ (limited) or ✗ (not supported).
- Re-mux if neededIf the codecs fit, you can change only the container, without re-encoding.
Recommended settings
When it goes wrong
No audio after MP4 conversion
Cause: The audio is still AC-3, DTS or Vorbis. MP4 can hold it, but some devices and browsers cannot play it.
Fix: Convert only the audio to AAC (-c:v copy -c:a aac).
AV1 won’t play
Cause: Older browsers and operating systems cannot play AV1.
Fix: Convert to H.264, which plays almost everywhere.
Questions
Fastest way to convert MKV → MP4?
If the codecs are H.264 and AAC, change only the container without re-encoding (ffmpeg -i in.mkv -c copy out.mp4).
AV1 vs H.265?
AV1 is a newer, efficient format, but older devices may not play it. Some browsers cannot play H.265 either. If it has to play everywhere, H.264 is the safe choice.
More detail (settings, limits, FFmpeg commands)
What each setting means
Browsers and limits
- The table shows what a container can hold. Whether it plays depends on the browser and OS version.
The same job with the FFmpeg command line
ffmpeg -i input.mkv -c copy output.mp4