← Back to context

Comment by wmf

9 years ago

I remember when MP4 was the standard yet the scene used AVI and MKV. I get the impression that they care more about their own idiosyncratic notions of technical superiority than compatibility (hey, kinda like HN).

Note that avi, mkv and mp4 are all container formats.

avi and mkv can contain nearly any audio and video streams regardless of codec. mp4 can contain only a specific set of audio and video streams determined by a limited set of codecs.

You can trivially copy the audio and video streams directly over into an mp4 container provided that the codecs used are supported by mp4. As long as the codecs were supported also by the device you were looking to watch it on then you’d be able to watch it. So the codecs are the most important bit.

If I remember correctly, aac + h264 was commonly used for audio and video respectively, both of which are supported by mp4.

Of course it would still be an annoying extra step for someone who needed the file to be mp4, but at least being able to simply copy the streams is fast and cheap compared to streams that need to be transcoded. Transcoding could take painfully much time and could also easily further degrade the quality of the streams.

An important thing to note about mp4 is that in some configurations, metadata that is needed for playback is placed at the end of the file. This means you can’t playback this sort of file directly until you had downloaded the whole file completely. Often there would be a separate sample file that you could download to have a look at the quality anyway but still, it is one reason that you might want to go with avi or mkv instead as I don’t think those containers suffer from that problem at all. So if you download mkv and preview it early in let’s say VLC and you know from the nfo that they are using mp4-compatible codecs then you can both always have preview to ensure quality is good (or even that it is at all the movie you are looking for), and then after you’ve downloaded it you can copy the streams over in an mp4 container quickly and then consume the movie on your mp4 media device.

AVI was used for years, way before MP4 existed, and MP4 did not offer any relevant advantages so groups kept using AVI.

MKV has builtin multiple-language-tracks, chapter and subtitle support (MP4 support is non-standard and incompatible), so if a release needed that MKV was used instead of AVI.

MKV has more features than MP4.

Whenever I remux MKV->MP4, I lose chapters.

Technical superiority is more important than compatibility, especially when you have MPC-HC and VLC that are happy to play practically any format ever.

  • MP4 also supports chapters; it's probably the muxer you're using that does not implement the feature.

    But yes, MKV supports virtually any codec, so that is a big plus. It comes at the expense of support on different platforms.

Basically only pirates used MKV, yet it's now gaining wider support; the beta version of Windows supports it natively.

  • WebM is based on MKV, and it's been in browsers since 2010.

    I've used MKV for lots of things, such as video production work, remuxing digital TV stream grabs so normal programs can play them, etc. It's the most reliable container format, from my point of view.

  • My whole media library of ripped DVDs and Blurays (that I legally own) is in MKV format. You get video, chapter marks, multiple audio streams, and subtitles all in one file. Plus almost every modern device plays them. I love it as a container format.

    My MKVs typically have H264 video + AC3/DTS audio.