Playing Those Damn Videos on Windows


So you've downloaded a video and all you got was a nasty error message? Well this guide is designed to help you watch that video and asnwer the simple question "How do I play it?!"

The Quick Answer for those who can't be bothered to read...

...is to download and use the VLC media player which can play these formats. Everything it can decode it can do out of the box. Including all my videos. It's nice. Of course it can't play everything so if that doesn't help then you are going to have to actually read the rest of this page. I know, life is very cruel.

Contents



PART ONE - Players

"What player do I need to play this video?"

The first question people ask when they can't play a video is often "What player do I need to play this video?" What many don't realise is that this is often the wrong question. Pretty much every video you can download can be played using the simplest of all media players - Windows Media Player 6.4. The real problem is usually one of the following:
  • You do not have the right codec(s) installed
  • You do not have software (DirectShow filter) installed that supports this container(s)
  • Your codec(s) is/are configured incorrectly so things are not playing correctly.
That's not to say that you don't need a better or different media player it's just that playing files on windows isn't always about the player.

"What is a Codec?"

A codec is a compressor/decompressor - the code that works out what to do with encoded video or audio information so that you can see and hear it (decoding) or take video information and store it a particular way (encoding, compressing). There are lots of codecs... lots and lots and all with different qualities. You don't need to know the different qualities as you aren't making the files, you just need to be able to play them. The most common for internet distributed video files are ones like DivX, XviD, WMV7/8/9 and so on.

"What is a Container?"

The file format for storing streams together. Containers store the video stream, the audio stream and other things like subtitles, chapters, menus and so on. Common containers are AVI, MOV, RM, WMV and so on.

Some containers are better than others and some are designed for particular kinds of video or audio. The mpeg-1 container is, as you guessed, designed for mpeg-1 video. Being able to play a container does not always mean being able to play the streams inside because those streams may need a particular codec installed.

How video playback works on Windows and what different players do.

To play a file on windows a media player will either a) use a DirectShow filter that has been installed and configured to be used universally in any media player or b) ignore the default registered DirectShow filter for that video type and use its own internal one. Most media players do a) but some do b).

Ones that do a) have the ability to play any format provided you install the correct decoding filters or codecs. Ones that do b) can play everything they are designed to play out of the box but may not be able to play anything other than that. This is why the "which player" question is often pointless because most windows players use DirectShow filters which means they are almost all accessing the same filters when trying to play a file. If you dont have the right filters/codecs then it doesn't matter how many of these kinds of players you have, they will all fail to play the file.

Media Players that use installed DirectShow filters/codecs:

All of these players can be used to play your files provided you have the correct codecs and filters installed.
Windows Media Player 6.4 (no cost) - This is available on every version of windows and can be accessed by going to Start Menu > Run and typing in mplayer2.exe. If you really don't have it you can download it from here (5kb!). This is the simplest player there is but is also the purest as it relies entirely on whatever DirectShow filters and codecs that are registered for the type of video you want to play.

Windows Media Player 9/10  (no cost, only your soul) - This is a bloated heap of user-unfriendly rubbish most of the time. It is slow and sometimes hard to convince that it can play a certain file type (such as, say, .ogm) even though you have the correct DirectShow filters and codecs installed to do so. A poor excuse for a media player.

Media Player Classic (Free) - This is a wonderful player and the one I recommend. It is much like Windows Media Player 6.4 but it also has playlist capabilities, in-built support for containers like ogm and mkv and is very customisable. This does have some of its own in-built decoding but it is all optional.

BSPlayer (free/crippleware) - A nice player with a slick design. Generally as capable as Media Player Classic but with a very different user interface that some may prefer.

The Core Media Player (free/crippleware) - Much like bsplayer but with a lot of shiny plugins that do firvolous pretty things. A decent player.

Media Players that rely on their own in-built decoding:

VLC Media Player - This is based on Open Source codec development such as FFMpeg/libavcodec. It can handle a large amount of filetypes without the need to install any codecs or DirectShow filters of any kind. It's a pretty decent player (although its seeking is a bit haphazard) and an excellent choice if you don't want to install lots of stuff on your system.

CrystalPlayer
(free/crippleware)- A shareware product but older versions are available for free. Notable for using its own decoding abilities for DivX, Mpeg 1 and 2, WMV and Real which will cover a lot of codecs. Alternative container support looks weak, though, and the interface is a matter of taste. What is also notable is the buffering options which can apparenlty help playback on older slower systems if configured correctly. The direct link to the free player download is here.

Which player to use

Honestly you can use any of the players listed above. Any of the DirectShow players should be able to handle your files provided you have the right DirectShow filters and codecs installed (see below). The players with in-built decoding will be able to play exactly what they say they can and that's all and that's fine :) Personally I use Media Player Classic for most things and VLC for times where I want to quickly try a different decoding method.


PART TWO - Video Playback

"I downloaded a video and it says codec cannot be found, is the file broken?"

Your file is not broken but if you are using Windows Media Player then Microsoft wants you to think it is. One of the common misconceptions is that when Windows Media Player searches for a codec online and doesn't find one it must mean that there is something wrong with the file. In reality, it only searches for Microsoft codecs - if the file requires a codec that isn't affiliated with microsoft then it will say there is no codec available. You should ignore this and continue reading this page.

"So should I just install a codec pack so everything will work?"

NO!!! Codec packs (installers which contain a veritable swiss army knife of codecs) are great in theory but terrible in practice for many reasons.
  1. You do not know exactly what you have installed and what has been configured to play what.
  2. They are often very hard to uninstall. Some codec packs are famously difficult to completely remove from your system.
  3. If something goes wrong you will not know exactly what part has gone wrong because it could be a number of things. This means you do not know what to fix nor what name to scream and curse out loud when trying to fix it.
  4. They generally contain far more codecs than you actually need. Less is more.
So there you have it. No offense to those who dilligently work to put codec packs together but you can't deny that they can be more trouble than they are worth. It's best to just install things individually to your needs.

"I want to play everything!!!11"

Well no player actually plays everything out of the box yet but there are quick ways of playing most things. One easy way is to get a player that has in-built decoding of these formats. Download and use the VLC media player. Everything it can decode it can do out of the box.

The other way to play everything is to install all the codecs, container filters and so on so they work in the media player of your choice. BUT...  you should really only install stuff as you need it otherwise if something breaks you will not know what is doing the breaking.

However, if you really really want a sensible list of things to install to cover most stuff then here it is. The things that will help decode the most files are prioritised from top to bottom.
  1. Download and install FFDShow for decoding DivX, XviD and a whole bunch of other stuff that can be put into the avi container. It's good and can also decode a lot of audio things too.
  2. Download and install Media Player Classic to use as your media player. It's decent.
  3. Download and install the Windows Media Video codecs.
  4. Download quicktime and realplayer and install them very carefully or look into Real Alternative and Quicktime Alternative. Once you have qt and real installed you can play .movs and .rms in Media Player Classic (see 8)
  5. Download and install 3ivx  and go to your Start Menu > 3ivx > 3ivx Config. Choose "3ivx D4 Media Splitter" on the left and then tick the box that says "Allow Unsupported Decoders". This will give you mp4 splitting (for mp4 playback with FFDShow).
  6. Download and install the ogg media filters for ogm files.
  7. Download and install the Matroska lite package for mkv files.
  8. Open up Media Player Classic, go to View > Options and tick the boxes for "MPEG Media File" "MPEG 4", "Ogg Media File", "Other", "Video Files" and "Windows Media File". If you installed Real and Quicktime you can also choose "Quicktime" and "Real Media File" and Media Player Classic should be able to play that content too.
That is basically it. If there's anything more problematic, keep on reading.

Knowing what type of file you have

Although sometimes the file type you have may be misleading, generally you can tell what you need to do just by knowing the extension of the file such as .avi, .mpg, .mov and so on. However, if you are new to Windows and haven't customised your OS then you may not be able to actually see the file type because, by default, windows hides known file extensions. This is a useless feature that you should turn off. To do so, open any folder and in the explorer window choose Tools > Folder Options. In the View tab look for and deselect the option that says "Hide file extensions for known file types". Now you can see all your file extensions just fine and rename them if you need to for some reason.

Sometimes filetypes are wrong. Not often, but it happens. AVIcodec is a video file identifier and should tell you what it really is.

Playing specific file types

Note: When this guide refers to "media player" it means any player that uses the DirectShow filter/codec configured for this type of video as listed above.

.avi files

Windows media players can play avi files easily but usually require codecs to be installed in order to decode audio and video. If you don't have the right codecs installed then you are screwed. You have the following options.

Option 1 - get a player that has in-built decoding.
Download and use the VLC media player. It can decode pretty much any codec that can be put in an avi container. Occasionally you may find that people have renamed .wmv files to .avi and it just so happens to be one of the wmv codecs that VLC can't play. If so, go to the .wmv section.
Option 2 - get a codec to play it in media player:
There are lots of possible codecs that can be in avi files - many more than you are aware of. Luckily for you, FFDShow supports pretty much every codec used for internet distribution within an avi container.. Download the latest version of FFDShow from here (check the date in the filename) and install. When installing click all the codecs you would like it to play.

You can configure the codecs that FFDShow can play later by going to the start menu and finding the FFDShow folder and clicking the "Configuration" link (not the "VFW Configuration" link). You then have to go to the sidemenu option Codecs, find the format you want to decode and click the middle column and choose a decoder.
Option 3 -Work out the codec the file is labelled to use and see if you can download it online.
Try opening the file with the program AVIcodec- it should tell you a) if it thinks it's a video file or not and hopefully b) what codec it thinks you need to play it. If it lists a codec that FFDshow does not suppor then you will need to use google to see if you can download this codec.

.mpg files

This extension is usually used for mpeg-1 video which all systems should be able to play. Sometimes, however it is mpeg-2 video which most systems can't play without installing something. To be honest the best players of Mpeg-2 footage are dedicated commercial software DVD players like PowerDVD and WinDVD. You should use those if you want reliability. Without these you have these options:

Option 1 - get a player that has in-built decoding.
Download and use the VLC media player or Media Player Classic. These both have their own Mpeg-1 and Mpeg-2 decoders.
Option 2 - get a codec to play it in media player:
FFDShow also has mpeg support but it is variable but frankly the easiest way of getting mpeg-2 video playing in windows media player without having WinDVD or PowerDVD decoding.
Option 3 -Work out what the file REALLY is.
Try opening the file with the program AVIcodec - it should tell you a) if it thinks it's a video file or not and hopefully b) what codec it thinks you need to install.

.wmv and .asf files

Microsoft invented their own container as a beefed up avi a while back and have used it to store Windows Media Video and Audio ever since (sometimes with Digital Rights Management from hell). The software to play the wmv and wma codecs are usually bundled with new versions of Windows Media Player via windows update. Shame the only version of Windows Media Player that is any good is version 6.4. To play .wmv files on regular media players like Windows Media Player 6.4, Media Player Classic etc then you should download the installer for 6.4 and run it.

Older wmv content can actually be decoded with FFDShow and can also be played in VLC.

.rm and .rmvb files

These are RealVideo files. Do not fear RealVideo, if encoded correctly the newest Real codecs are actually pretty sweet. RealPlayer, on the other hand, can be quite nasty. You have the following options:

Option 1 - Install realplayer haphazardly and throw caution to the wind.
To do this, simply go to the Real Networks website and let the fun begin. Game number 1, finding the free version of the player.
Option 2 - Install RealPlayer safely and (optional) then get Media Player Classic to do the playing
To keep your sanity when installing realplayer, this is what you need to do:
  • Get the free version of Real Player from this link.
  • When installing, choose Custom Install
  • Uncheck the boxes you do not want for items on the desktop and quicklaunch bar.
  • Check only the media types you want it to play. This is the only time you will be asked this, it will never try to take back any media types. Be careful and make sure that you go through the whole list.
  • Start RealPlayer, either Create an account, or Cancel out.
  • Then go to Tools->Preferences->Automatic Services, Click Configure Message Center, then uncheck "Check for new messages". Click OK on the "warning" that comes up. Now you will never see the Message Center. In the same menu, check or uncheck Auto-update in its sub-menu as well.
  • Optionally, go to Tools->Preferences->General and set On startup display to "Player only". There will be no browser and it starts much quicker. You can open the browser/library later if you really want it via the menus.
Once you have this installed you can either use this player or you can actually use Media Player Classic. MPC can access Real's playback, go to  just have to go to View > Options > Filters and tick the RealVideo and RealAudio boxes. Now go to Player/Formats and tick the file type extensions for real media files.
Option 3 - Try and find a Real Alternative.

.mov or .qt files

These are Quicktime files. They can contain a variety of different codecs, much like avi files can. To play them you have the following options:

Option 1 - Install the Quicktime Player
When you are installing Quicktime you need to make sure that you deselect any things you do not want Quicktime to play. This is particularly important because Quicktime will often try and take over certain things in your internet browser if you let it. Follow these installation steps:
  • Choose Custom Install
  • Deselect everything except Quicktime Essentials. You don't need any of the other stuff until you know you do, so scroll down and deselect the things sneakily hidden at the bottom of the list.
  • Cofigure MIME Settings. The only things you will really need are both streaming options, Video>Quicktime Movie and AutoDesk Animator, Images>Quicktime Image File. Everything else you will not need to select so deselect everything else.
  • Configure File Types. Uncheck the "notify me if other applications modify these..." then go into the File Types options and Deselect everything except Quicktime Movie and Quicktime Image File.
Quicktime should now be available but only when you actually want it.
Option 2 - Install FFDShow
FFDShow can actually decode a LOT of quicktime content such as sorenson 3 and so on. If you don't want to install QT you can give this a try.
Option 3 - Look for a Quicktime Alternative.

.ogm files

These are Ogg Media files and can contain all kinds of stuff which means that even if you can play the container you may not have the codec for the audio or video contained inside. VLC has ogm support but DirectShow players need to have support installed.

Install these direct show filters will allow you to play the files in any of the DirectShow players although you will have to configure the player to play .ogm files. Some players like Windows Media Player 10 wont list .ogm files in known filetypes very easily (or at all). I say get a better media player.

If you still have problems with an ogm file after installing those direct show filters then it's probably due to not having the video codec used on the footage contained inside the ogm file so you should check out the avi section above for your solution.

.mkv files

Matroska containers can also have all kinds of stuff in them which means that even if you can play the container you may not have the codec for the audio or video contained inside. VLC has mkv support but DirectShow players need to have support installed.

Install the Matroska lite pack to get mkv support in media player. Once you have this you then need to be able to decode whatever codecs are being used in the mvk container.

This could then be treated the same as an avi file but can also sometimes contain RealVideo or WindowsMediaVideo too! Matroska, being such a good container can contain almost anything so you should probably check at the place you downloaded the file exactly what codecs are contained inside.

.mp4 files

The mpeg4 container is slightly rare at the moment because the most popular mpeg4 codecs (divx and xvid) have both primarily used the .avi container. However, things are changing and the more advanced mpeg4 codecs will need to use an mp4 container as most AVC content cannot be stored in an avi file due to the limitations of this container.

Option 1 - get a player that has in-built mp4 support.
Download and use the VLC media player. This has its own mpeg4 splitter and can decode most of the mpeg4 codecs around.
Option 2 - get mp4 support for DirectShow players
Download 3ivx which can be used as a splitter for the mpeg4 container. After it's installed, double click the '3ivx config' link, Go to 3ivx D4 Media Splitter and choose "Allow Unsupported Decoders". You can now play the mp4 container. Install the latest FFDShow to be able to decode almost all the codecs currently used in this container. Play in your favourite DirectShow media player.
Option 3 - Try Quicktime Player or Real Player.
Both of these players have their own mp4 decoding support and while I don't actually think either are superior to the method in option 2 it is possible that they might be able to randomly decode something that option 2 cannot.

.vp6 and .vp7 files

On2 Technologies developed the vp6 and vp7 codecs - these are commercial codecs that can sometimes appear in .avi containers but often need a proprietary player (TrueCast Player).

.zip or .rar files

These are storage and compression files, not video files. To decompress the contents use the program WinRar. Some zip files made with the latest WinZip may not be supported in WinRar yet so if you have any problems with a zip file try getting WinZip. Generally, though, WinRar is better.

I-honestly-don't-know-what files

Try opening the file with the program AVIcodec - it should tell you a) if it thinks it's a video file or not and hopefully b) what codec it thinks you need to install. Once you have the name of the codec you should then use google to see if you can download and install something that can play this for you.


PART THREE - Audio Playback

For most of the files you will download at the moment you will be able to play the audio. However, with some of the more advanced containers, new audio codecs and other developments you may find you have a file in which you have video but no audio. If this happens you should find out what the audio stream is and see if you can download a codec for it. Common examples are listed below.

AVIcodec can detect what audio stream the file has so load your file into that and find the audio type. If it doesn't match any of the types listed below then try searching for it on google and see if that helps.

FFDShow can decode a lot of audio types as well as video types so run the Audio Configuration link in the start menu to configure any audio codecs you may be missing. Remember too that VLC media player does all its own decoding so it may support the audio and save you the trouble of finding a DirectShow filter for it.
AAC - This can be played with FFDShow but CoreAAC and 3ivx are also aac decoders.

AC3 - This can be played with FFDShow. AC3Filter is also a very good option for Direct Show players. Commercial DVD players can also play AC3 audio.

DTS - FFDShow can decode DTS audio.

OGG
- This needs the Ogg Vorbis direct show filters installed.

FLAC - The Free Lossless Audio Codec.  FFDShow contains FLAC decoding support as do these filters that support FLAC and OGG.

WMA - Windows Media Audio - requires the same support as Windows Media Video above.


PART FOUR - Troubleshooting

Even with all this help, things can go wrong. This troubleshooting section is going to be written as a Q&A. I'll post as many things now as I can think of and add to them later if people still have problems after reading this page. Remember folks, use AVIcodec to find out information about your file. If for some reason it doesn't work, try GSpot which does the same thing.

1) "I found out the format and codec, followed the instructions but my media player still wont play it"

Did you configure the filter or codec correctly? With codecs like 3vix, FFDShow, DivX and so on you can configure these codecs either using a link in the Start Menu or via the decoder properties list in your media player.

2) "OK something I don't want is doing the decoding instead of my preferred filter - how do I change this?"

Even though you have something installed, a different filter could have been configured to play this content instead of the one you want. Generally the way to handle this is to uninstall the things that you don't want to play your content and then install the things you do. However, sometimes it's not as easy as this so instead you need to change the DirectShow Filter Priority.

Many different filters can be listed as things that can decode certain content so if you want to make sure that a certain thing does the decoding you have to make sure that it has the highest merit. To do this, download the DirectShow Filter Manager and run it. Click and sort the merit section and you will see the filters in order of priority, Find the offending filter, note its merit, find the filter you prefer and make its merit a number higher than the one currently doing the decoding.

Not a very neat interface, I know, but it's the only suitable free program that I know about at the moment. If anyone else knows of a more user-friendly system please get in touch.

3) "The video plays but really lags a lot."

This could be all sorts of things. It might be lagging because the media player you use takes up a lot of system resources (such as Windows Media Player 9/10). It might also be lagging because the filter that is being used isn't actually very good at decoding that content. See the questions 1 and 2 for more information about what decodes what.

However, the most common reason for this is that the filter being used needs more processor power than your computer can give it. This is sometimes because the video is high bitrate with a large frame size or because the video has a lot of complicated encoding options like b-frames, qpel, gmc and so on and all of this makes it harder to decode. This sounds like there's nothing you can do to help but actually that's not always true. Not all decoder filters are created equal. FFDShow is much faster at decoding divx content than the DivX decoder is. - especially if you select the option "use overlay mixer" in the Output part of the FFDShow configuration. Also, you may have Post Processing options enabled so you should configure your filter to disable those if you are having problems with lag.

There are also some codecs that you may never be able to play real-time as they are not designed for it. Lossless storage formats, for example, are not designed for quick playback and you shouldn't expect it when playing these files.

4) "I have and avi file that I can play in Media Player Classic but I cannot seek with it"

This sounds like a file that has not completed downloading fully and hence does not have its keyframe index. AVI files store their index at the end of the file which means that sometimes it can be difficult to play the file without it. However, all is not lost. You can use VirtualDub to re-index an avi file. There are instructions on how to perform this operation in the program's help file.

5) "I have a file that says it is a certain codec but I know that it's not, can I change this?"

I won't ask how you know that it's labelled as the wrong codec but it's not impossible. The thing that identifies a codec is it's FourCC (Four Character Codec). Typical FourCCs are things like DIV5 (DivX 5). FourCCs are easy to change, you can download a FourCC changer on the download page on the Doom9 website.

6) "Every time I select a file in windows, explorer crashes!!"

Some codecs do not co-exist happily with the media preview options in newer Windows operating systems. The only solution to this is to turn off the preview feature in your folder options. Do you really need that things slowing down your file browsing anyway?

7) "Every time I click a file to download it, a media player wants to play it instead"

This is to do with MIME settings. Websites often say what kind of content a file is and many web browsers are configured to do certain things when they receive certain content types. Sometimes you can configure this, sometimes you can't - it depends on many factors. If you can, always "right-click to save as..." instead of left-clicking.
1) Is it something you can configure in the browser?
In Firefox, each content type is listed as a plugin in the Tools > Options > Downloads > File Types > Plug-Ins... menu. You can disable these MIME plug-ins as you see fit. You can also specify the default action for specific file types around here too.

In Internet Explorer things aren't so easy. One trick is to click the Media button to bring up the media side menu. Now click the Media Options and deselect Settings > Play web media in the bar. That sometimes fixes things.
2) Is it the media player being intrusive?
Some media players try and force MIME settings, such as Quicktime. Go into the player settings and see if you can disable anything to do with playing this kind of content from the web.

8) "Every time I play a DivX file I get the DivX logo - what's up with that?"

If you are using the DivX decoder for your divx content instead of FFDShow then this will happen by default. You can stop this by going to your start menu > DivX > DivX Codec > DivX Decoder Configuration Utility. On the Quality Settings check "Disable Logo". This will need to be done after each time you install the DivX codec.

9) "Is there any way I can get things to look less blocky during playback?"

Yes, this is called Post-processing and many decoders have these options in their configuration settings. FFDShow has a number of post-processor options - choosing the "mplayer" option will give the best results IHMO. If there is an option for automatic quality control in your decoder then select it as it will turn off the post-processor if it would take up too much cpu power to use it for a certain scene.


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