I generally like to update to the latest versions of software as they come out (whether beta or “stable”). There is always the chance that the new update may break something that was once working, but for the most part to date I have had very few issues.
A few weeks ago I updated to the latest mkvtoolnix, which I believe is currently at v4.2.0. I unfortunately noticed a bad side effect of this, as mkvs created with the latest version were not playing properly on some of my hardware. It turns out that starting with v4.1.0 Mosu, the developer of mkvtoolnix, implemented “header removal compression”. Per Mosu’s faq, this allows a muxer to keep a certain number of bytes that are identical for each frame in the track headers removing them from the individual frames. This reduces the size of the tracks significantly without altering the content as a demuxer can add the bytes found in the track headers to each frame during demuxing. Header compression will apply to a variety of tracks suck as AC3, DTS and MP3 audio tracks as well as Dirac and MPEG-4 part 2 (aka. XviD/DivX) video tracks. Starting with v4.1.0 header compression is enabled by default for these tracks. If you look at the screenshot below the compression settings are under the “Extra Options” tab
So what exactly is the problem? Well, it turns out that several hardware/software players don’t support header compression in mkvs. For example I tested out an mkv with header compression on my PCH C-200 and I got audio but no video. To add fuel to the fire, header compression is set by default as enabled with v4.1.0 or greater, so if you have hardware/software that does not support this feature you must manually set Compression to “none” every single time you use mkvmerge (in my opinion this feature should just be set to disabled by default, or at a minimum allow the user to set it to disabled once and be done with it). Unfortunately the benefit from header compression is minimal at best. I created two identical mkvs, one with header compression and one without. The mkv without header compression weighed in at 20,908,403 KB whereas the mkv with header compression weighed in at 20,906,165 KB, a mere 2,000 KB in savings.
If you are affected by header compression what can you do? Well, there are a few options:
- Use mkvtoolnix v4.1.0 or greater but press the developers of any hardware/software players having issues to add support for this
- Revert back to an older version of mkvtoolnix (pre v4.1.0)
- Set compression to “none” each time you use mkvtoolnix v4.1.0 or greater