Codec Compatibility Chart

published

The MVix MX-760HD is a neat little device, and I’ve had fun fiddling with it. In order to help others who might be interested in it, I’ve documented some of the media formats it supports.

Introduction

Video encoding seems to be a pretty complex thing, with a lot of variables involved. I’m not interested in learning the deep magic (or the mathematics) of video and audio compression; but on the other hand I’d like to know that I’m getting better-than-decent results from the tools I use. I don’t (yet) have a high definition television set; I don’t have a top-of-the-line home theater system; I’m not an audiophile; and I’m not obsessed about getting perfect quality in the smallest file size. I’d like to find some process that converts my DVDs to files I can store somewhere. I’d like these files to preserve multi-channel audio, when present in the original; and I’d like the quality of these files to be at least a little better than “decent”. In my opinion, hard drive space is cheap, so I’d prefer quality over compression when it comes to ripping the DVDs. I don’t think hard drive space is so cheap as to store raw DVD images, though, so I do want some compression to occur.

I use GNU/Linux as my operating system, and when possible I prefer to use Free Software and open codecs. The latter is currently impossible when it comes to multi-channel audio, at least as far as I’ve found so far. Various external factors do influence my decisions with respect to codecs, as well. For example, my wife has an ipod, which doesn’t natively support Ogg Vorbis audio; so all of our CDs will be ripped to MP3 format.

Tools

The software I’ve used so far includes Handbrake and avidemux2. I found the Post Your “Best” Settings Here, and WHY thread on the Handbrake forums to be very helpful. Not knowing entirely what I was doing, I posted a question on the avidemux2 support forum, asking for guidance. The responses to my question pretty well match with my experiences documented below.

Methodology

I started by encoding the same scene from Lord of the Rings: The Fellowship of the Ring using all the combinations of container format, video codec and audio codec provided by Handbrake (here’s the script I used, and here are the files I created – the files are no longer online). I then played each file in Totem (using Xine as the actual backend, rather than the default GStreamer):
for i in ls; do totem $i; done;
For comparison, I also played each of the files in MPlayer:
for i in ls; do mplayer $i; done;

Finally, I tried to play each file on my media player. I had to rename the OGM files to .mpeg before the MX-760HD would recognize them as movies it could (try to) play. It’s a bit disappointing to note that the Ogg container format isn’t supported at all by the MX-760HD; though the Vorbis audio codec is supported. As such, I’ve excluded it from the tables below, and instead listed only those container formats that actually produce some playable output on the MX-760HD.

Results

AVI Container
AC3FAACLAMEVorbis
ffmpegYESYESYESYES
x264NONONONO
x264b13NONONONO
XvidYESYESYESYES

MP4 Container
AC3FAACLAMEVorbis
ffmpegno audioYESno audioYES
x264NOno videoNOno video
x264b13NOno videoNOno video
Xvidno audioYESno audioYES

Here’s a PDF of all the codec combinations and how they fared in the players I tried.

Summary

It’s pretty clear that AVI is the best container for the MVix. It’s also worth noting that the x264 codecs are completely unplayable on the MVix.

Xvid is an open implementation of the MP4 standard, so I’ve chosen it as the video codec to use when ripping movies. I’m still fiddling with options that affect quality and file size. So far, I’ve been doing two-pass encodings with large target sizes (2 - 3 GB), rather than constant bitrates.

Since most DVDs have multi-channel audio, a feature I wish to preserve, I will use AC3 as the audio codec when ripping DVDs. For source media that lacks multi-channel audio, I’ll likely continue to use AC3, for convenience sake (since I’m scripting many of these operations), but I may elect to use Vorbis, since it’s an open codec.

Feel free to post suggestions in the comments, if there’s anything I’ve overlooked!


home / about / posts / notes / RSS