Playing Those Damn Videos on a Mac - OS X

WARNING

This is a guide written by someone who has never actually used any of these programs (I don't own a Mac nor have I used one for years) - it has been constructed out of second-hand knowledge and only exists here until someone with actual experience with Macs can write a real guide to doing this stuff (hint hint). I had actually received some feedback and corrections, for which I am very grateful.

This guide is split into two parts, the first is a demystifying and demythologising section that should hopefully give you an insight into the concerns of playing different formats.

If you are lazy and just want to see how to play the damn videos you should skip to part two.

Contents

Part One:
Part Two
Credits

PART ONE

Why do we need so many different video players?

In the world of distributable video there are many people who want to make money from their format. To try and maximise this they make their video format proprietary so that they can try and create monopolies by having a world leading distribution format and a dedicated player to go with it. This is of no use to you, the player of videos, as all you want to do is open up the player of your choice and watch the video you have downloaded.

Although it may be frustrating it can actually make life easier for the end user. You see, you know that if you have a mov you will play it in Quicktime and if you have a WMV you will play it in Windows Media Player. However, this creates a false understanding of the actual nature of video codecs - the only reason one would associate a particular format with a particular player is because that is what the creators of the format and player want.

"Macs can't play AVIs" and other fables

The standard video container on a Mac is the MOV container. In this container all sorts of video and audio streams can be stored, most of which (like Sorenson etc.) were licensed by apple in order to try and gain a certain level of exclusivity for their container format, urging people to use Macs for video editing and to use Quicktime for playback. However, this is just the format that Apple prefers - because it's theirs. Recently Apple have also supported the MP4 container because the MOV format was used by the Motion Pictures Expert Group to create the MP4 format. Apple didn't invent MP4 but they do want to associate this up-and-coming format with Macs and Quicktime.

However, these are just containers - containers that Apple have had a part in developing. A container is simply the thing you store the video and audio streams in. AVI is also a container, one developed by Microsoft almost 10 years ago, and just like MOV you can store many video and audio streams within. Playing the container and playing the streams are two different things.

See, Apple made sure that they had almost total control over what goes into an MOV so that if you gave someone an MOV file they could open up Quicktime and play it 99% of the time. Microsoft did not do this with AVI (perhaps they did not have the foresight) and Windows allowed people to come up with all sorts of Codecs (COmpressor/DECompressors) that could be used for streams within the AVI container. This is a very different philosophy to Apple because rather than associating the container with a prescribed set of codecs that would be played by a particular piece of software like Quicktime, windows avi files could be played on all kinds of movie players (even ones you can happily write yourself) provided the correct codec was installed.

So, the net result of this is that it's not just about whether the Mac can play the AVI or not, it's whether there is any Mac software to support the codec within the AVI file too. Unlike MOV, there isn't a dedicated player that has all the codecs ready - hence why you need to install Divx for Mac in order to play some avi files in Quicktime. The freedom of the AVI container has essentially caused confusion for the end user who are used to Container = Codec = Particular Player.

Microsoft finally caught onto the monopoly potential of having a leading format which would be associated with a particular player and thus Windows Media Video was born to try and capture the Internet distribution market (having lost the early years of the desktop video market to Apple). Unfortunately for Microsoft, industry support for its codec has been lukewarm in comparison to the support of the ISO specifications MPEG-1. MPEG-2 (used on DVDs) and now MPEG-4.

MP4 Issues

MPEG-4 is an industry specification developed by the Motion Pictures Expert Group. Companies developing video technologies use this spec to create their own codecs that match this specification. Think of the MPEG4 spec being a description of what ingredients can go into a cherry pie and all the companies using those ingredients in different ways to make the best cherry pie.

DivX Networks is one company trying to make a good MPEG4 cherry pie, XviD is an Open Source development doing the same, and so on.

The MPEG4 spec also defines a container - the MP4 container. This can be used to store video, audio, subtitles, chapters and all kinds of other things. The preferred video stream is of course mpeg4 video and the preferred audio stream is AAC (although plenty of others can work too).

When Apple released Quicktime 6 it heralded "MP4" encoding and decoding. However, the extent of Apple's mpeg4 implementation (at the moment) is pretty limited in scope. See, while Quicktime support MP4, the video and audio streams are quite simple versions of the mpeg4 video and audio spec. It's a bog standard cherry pie. This can be understood by looking at the mpeg4 profiles:
Simple Profile - this is what Quicktime 6 can create.
Advanced Simple Profile (ASP) - DivX, XviD and so on
Advanced Video Coding (AVC) - h.246 codecs, the future (Nero Digital, x264 etc)
So, even though DivX can be put into an MP4 container (using a variety of software), it cannot be decoded by Quicktime because Quicktime only uses the Simple Profile and doesn't support many of the more advanced features in DivX or XviD. This is bound to cause much confusion in the future when the mp4 format becomes de-facto because until now Quicktime has had full playback capability. So either Quicktime will need a serious update (we shall see how well it manages this with Quicktime 7) or Mac users will start having to look elsewhere to play mp4 files.

The Solution to Proprietary

To try and combat this container = codec = player ethos, the open source community have been busily working on players that will try and support everything! While Apple and Microsoft refuse to support competing codecs out of the box the open source community are trying to do just that thanks to the FFMpeg project and the various players which use this as the foundation for a multi-format, multi-codec player. Unfortunately, because certain formats (WMV, Real etc.) are closed-source there are limitations but it's a good start and no longer does a Mac user have to think in terms of "container x has to be played with player y".


PART TWO

Playing .mov files

This should be a no-brainer. Use Quicktime :)

Playing .avi files

As discussed earlier, .avi files can contain as many different varieties of audio and video streams as you can probably think of. So, in order to play avi files you can either
Option 1) Find out what codecs are used and see if there is a Mac installer to offer support for these in Quicktime

Option 2) Use a player that has in-built decoding of many common avi codecs and hope that it can handle the ones in this particular .avi file.

This situation is slightly simplified by the fact that the majority of the .avi files you will download will be encoded with DivX video (or something very similar) and MP3 audio. If you are going with Option 1 then installing the Mac version of DivX will allow you to play these files in Quicktime most of the time. Just download the regular version, you wont need the Pro version for playback. This is a pretty good option for most Mac users. However, even with this installed, Quicktime can still choke on some divx avi files - mostly with audio issues. Some mp3 audio streams in .avi files can still cause problems with Quicktime. If you have these problems, the 3ivx decoder for the Mac (another mpeg4 codec) can apparently help with the audio side of things. They also offer a program called Divx Doctor II which can help with the more troublesome avi files.

Installing the divx codec is fine but it is not the most complete of solutions - there are more video codecs out there than divx. Option 2 involves downloading a dedicated player of which you have two options that are very similar - MPlayerOSX or VLC

These two players are both based on the open source FFmpeg project which means that their codec capabilities are essentially identical so exactly which player you choose can often be a matter of preference rather than their ability to play the files. My advice is to download both, give them a try and see what you think - mplayerosx does have better post-processing (deblocking and deringing) than VLC, which is a nice benefit. They do have codec limitations (see the list for vlc here) but for the most part they are very competent at decoding the majority of codecs designed to be distributed in avi containers. They also have support for .ogm .mkv and mp4. The more advanced mpeg4 video decoding capabilities of these players make them potentially superior to Quicktime for mp4 playback (as they support mpeg4 ASP, see above).

Playing .wmv and .asf files

Unfortunately, for the moment, there is only one option for this. Download and use Microsoft's Windows Media Player for Mac. Although MPlayerOSX and VLC could be programmed to decode Windows Media Video 7, 8 and 9 content they only support free GPL decoders and WMV is a proprietary format. So for now, Windows Media Player is the only option for modern wmv content.

Playing .rm and .rmvb files

To play Real Video content on a Mac one has to install Real Player 10 for Mac. Here is a direct link to the free player download (which can be quite hard to find on the main website).

Thankfully I've been informed that the Mac version of realplayer is not nearly as invasive as the Windows version. However, I have also heard it's not all that good either - so make sure you only register Real Video file types when installing because it's all that the program is good for

Playing .mp4 files

While currently it may seem very easy to play mp4 files on a Mac thanks to Quicktime 6's well-hailed support for the format, this may change in the future. Quicktime is capable of decoding Simple Profile mpeg4 video content and hence cannot decode mp4 files created using an Advanced Simple Profile mp4 encoder. If you find any mp4 files that cannot be played with Quicktime 6 then please use MPlayerOSX or VLC as they both support mp4 playback and can decode more advanced video content.

Playing .ogm and .mkv files

These two containers are probably a bit of a mystery to most regular users. Unlike .mov, .rm and .wmv they are not associated with a particular player. The reason for this is that, like .avi, Ogg Media and Matroska are containers for video and audio streams. As containers they have all kinds of features - the Ogg Media container was developed to find a suitable container for using the very popular ogg audio format with video streams (something that .avi will never be able to fully support). The mkv format was developed from scratch to try and accommodate many advanced features and more video and audio formats than any other container to date.

To play files with these containers you will need to use MPlayerOSX or VLC which both support these containers. It is possible, however, that you may find it difficult to decode *some* .mkvs with these players because Matroska can actually be used for storing closed proprietary codecs like Real Video.

Playing .vp6 and .vp7 files

The codecs and file format vp6 and vp7 are what On2 Technologies are hailing as the worlds greatest video codecs. This is basically hype - it's a good codec but there are better things out there. Unfortunately for Mac users, this codec has zero Mac support and is entirely windows based at the momet. On2 technologies aren't willing to make their decoding source available to the open source community so there's not much hope of seeing good vp6/7 support in MPlayerOSX or VLC any time soon.


Credits

Thanks to all those who have offered feedback on this guide. As with all technologies, things are constantly changing so if any of this information becomes out of date be sure to let me know. Likewise as we are all human any corrections, problems, comments, additions or whatever are appreciated so please email them to me: ian at absolutedestiny dot org.
AbsoluteDestiny - March 2005