Windows Audio/Video Codecs

Every now and then I see friends and people asking about best or recommended audio/video codecs for windows. Sometimes people say "Why windows use codecs and why Mac don’t?" as you know I hate Mac (better to say all Apple fansy-but-not-working products) and I have to say you better stick to your mac ’cause you need to install softwares to let you play each audio/video format because the QUICKTIME just play formats that it is "Hard Coded" which means if quicktime wants to play "WMV" a new version must be writting by apple people and you need to install the new version and then you MAY can watch the wmv files. But what about Windows Media Player? Windows Media Player uses some small applications called CODECs to play each format this is how it done in most Audio/Video players in Windows and I think it is by far-far-far better than QuickTime in apple. So what do I need to watch or hear a video/audio file? Now it is where the problem lies, it depends, I mean first you must be familar with some terms first.
 
There are some kinds of Codecs:
 
ACM (Audio Compression Manager): http://en.wikipedia.org/wiki/ACM which we do not use.
DirectShow: http://en.wikipedia.org/wiki/DirectShow which we mostly use and here you’ll find most of the codecs, and I’ll tell you which I use the most! DirectShow codecs are the ones that used in most of applications in Windows, like Windows Media Player, Media Player Classic (if you turn of internal codecs in View->Options->Internal Filters), … But software like VLC Player donot use System DirectShow Filters (DirectShow Codecs/Filters that are registered in your Windows).
 
DirectShow Filters are 3 kinds: Splitters, Decoders, Encoders.
1) Splitters are used to inform system which video/audio decoder to use for a Video files. Which means system first find a splitter for a video and then the splitter tells the system which audio and video decoder to use for its audio and video stream.
2) Decoders just decode a stream into system acceptable stream. (like mp3 stream into wav stream)
3) Encoders they will be used in encoding application and they just do the reverse as what decoders do. for example I use illustrate dBPowerAmp http://www.dbpoweramp.com/ for audio file conversion this application use it’s own decoders and encoders but also have a decoder that lets you use DirectShow decoding, I recommed this software for audio conversion.
 
So now you know what you need to know about DirectShow Filters, so the question is what filters do you need? Do having more filters registered on a system means it will play everything? What Codec Pack (Codec Packs are software like K-Lite Codec Pack http://www.codecguide.com/ or Vista Codec Package or … which has lots of codecs in it and lets you to customize the installation.) do I need?
 
So I’ll tell you in this way, first download GSpot Codec Information http://gspot.headbands.com/ (I don’t know where he found this name for this software but I’ll tell you what the software is amazing as the name tells), You can use this software for two things:
 
1) Go to  System->List Codecs and Other Filters, here you may see all codecs and filters installed on you system:
 
  • You can un-register or re-register these codecs (if you unregister a codec you’ll need to restart the application to see the changes or System->Reload Filter Data) Note that by unregistering a filter you didn’t delete the file, and you may do this manully, and I’ll tell you how. You can also register or unregister a filter file by runnig "regsvr32 {codecfilename}" or "regsvr32 {codecfilename} /u" in cmd.
  • You can see filters type and also filters with problem (if they are in RED, lookout the bottom of page to see colors meanings)
  • You can right-click and see the "Details" of a codec, and here you’ll see if this is a Microsoft (original) codec or a third party one, and also you can find the codec file, which is mostly ".dll or .ax" files, as I’ve told you codecs/filters are applications so you see they are dll or ax (ax files are also dlls).
  • And you can "Set Filter Merit" by right-clicking on a codec. Filter merit is a way for windows to choose which codecs to use if two or more codecs said that they can all decode/encode a same stream. Which means if codec A and B both said that they can decode MP3 stream, windows look for larger merit set on both, so if codec A has merit set to 0x600000 and codec B has merit set to 0x600001 the B is chosen by system. So you can use this feature to debug your codec system and then when everything is ok unregister the looser.

2) You may use the Codec Information software main page:

  • You can open or darg&drop a file and see information on file. You can find file streams and information about each of them.
  • To see the system uses which combination of codecs for a file. Use "Proposed Codec Solutions and Tests" part of the main page after open a file and then you may use "GSpot Vid"/"GSpot Aud" column and press 1,2,3 and see the results, 1: Guess which codec to use to decode Audio/Video 2: Test those codecs 3: Run the codec in GSpot and see the result. And Also you may use "MS A/V" to see which codecs Windows may use. Note that may be you see error here but you may run the file in Windows Media Player with no problems.

So This was a fast guide about GSpot Codec Information 2.70a. So what to do next is first clear your Windows of installed third party codecs, I mean you may have install lots of codec upto now and some of them are not uninstalled even you uninstalled them from Contorl Panel. You may say why? You do your magic and let me have lots of codec here!! No, No way lots of codecs doesn’t mean lots of file types can be played. As you see (Merit) you must know that lots of codec have conflict on each other file types, so this will take time for system to know which of them to use and this time will take every time you open a file. So do what ever I’ll tell you and let me know the results (First read all the blog and if you are OK with my file types the come back againg and do what I’ll tell you, ’cause I don’t use some file type so I do not have all the solutions).

So First go to you installed software and uninstall all codec packs, the lookout in GSpot for installed codecs, in Windows Server 2008 they must be less than 70 and in other windows they must be less than 100 (You see why I tell you Server 2008 is the best, less codecs means faster OS), and check each codecs "Details" and see which of them are third party, and unregister and also delete them all. You do not need all third party codecs. Then a restart will be helpful if you cannot unregister or delete some of them (DLLs in windows will be loaded in memory if they was used for faster further usages, by restarting the windows you may unload them from memory, so I recommend you atleast one restart in this situations). Note that "l3codeca.acm" is the only non Microsoft codec which you don’t have to delete because thats how Windows Media Player plays the MP3 files (And this how microsoft was SUED for $1.5 billion YES BILLION, so you better do not delete this codec :D). Also note "QUARTZ.DLL" is  base for all the DirectShow filters.

Note that Nero Burning ROM install lots of codec in system, and if you just unregister them every time you run NERO it will register them all, so you need to delete them all here is a .bat file you may use:

@echo off
%SystemDrive%
cd "%ProgramFiles%Common FilesAheadDSFilter"
regsvr32.exe /u /s HMNavigator.ax
regsvr32.exe /u /s Mpeg2StreamReader.ax
regsvr32.exe /u /s NDParser.ax
regsvr32.exe /u /s NeAudCD.ax
regsvr32.exe /u /s NeAudible.ax
regsvr32.exe /u /s NeAudio2.ax
regsvr32.exe /u /s NeAVSync.ax
regsvr32.exe /u /s NeBDGraphic.ax
regsvr32.exe /u /s NeBDThumbnail.ax
regsvr32.exe /u /s NeCapture.ax
regsvr32.exe /u /s NeDeinterlace.ax
regsvr32.exe /u /s NeDVD.ax
regsvr32.exe /u /s NeDVSplitter.ax
regsvr32.exe /u /s NeFileSourceAsync.ax
regsvr32.exe /u /s NeFileSrc.ax
regsvr32.exe /u /s NeFLVSplitter.ax
regsvr32.exe /u /s NeFSource.ax
regsvr32.exe /u /s NeMp3Encoder.ax
regsvr32.exe /u /s NeMP4Splitter.ax
regsvr32.exe /u /s NeNDAud.ax
regsvr32.exe /u /s NeNDMux.ax
regsvr32.exe /u /s NeNDVid.ax
regsvr32.exe /u /s NeOggSplitter.ax
regsvr32.exe /u /s NeOverlayMixer.ax
regsvr32.exe /u /s NePhotoSource.ax
regsvr32.exe /u /s NePSMuxer.ax
regsvr32.exe /u /s NeQTDec.ax
regsvr32.exe /u /s NeRender.ax
regsvr32.exe /u /s NeResize.ax
regsvr32.exe /u /s NeroFormatConv.ax
regsvr32.exe /u /s NeroVideoProc.ax
regsvr32.exe /u /s NeSBE.ax
regsvr32.exe /u /s NeSceneDetector.ax
regsvr32.exe /u /s NeSoundProc.ax
regsvr32.exe /u /s NeSoundSwitch.ax
regsvr32.exe /u /s NeSplitter.ax
regsvr32.exe /u /s NeSubpicture.ax
regsvr32.exe /u /s NeSubtitle.ax
regsvr32.exe /u /s NeVCD.ax
regsvr32.exe /u /s NeVCR.ax
regsvr32.exe /u /s NeVideo.ax
regsvr32.exe /u /s NeVideoAnalyzer.ax
regsvr32.exe /u /s NeVideoHD.ax
regsvr32.exe /u /s NeVideoRenderer.ax
del /f /a *.ax
rem Deleting the Lame Encoder DLL shipped with Nero
regsvr32.exe /u /s "%ProgramFiles%Common FilesAheadAudioPluginslame_enc.dll"
del /f /a "%ProgramFiles%Common FilesAheadAudioPluginslame_enc.dll"

But I Prefer to install Nero Portable 8.1.1.0 which is not the OEM Version and someone else is redistribute it, but I like it more than the original, because: 1) There is no need to install, just run an NeroPortable.exe 2) Nero make lots of changes in registry also if you deselect all the feature in setup, so after installing nero you may see your machine is working slower, trust me 3) Nero Portable does not install codecs on system 4) I’ve been testing Portable Version for month and now I RECOMMEND NERO PORTABLE on Nero Burning ROM 5) This is Free (Also I think illegal, but who cares)!!

Now your windows is CLEAN, now you have to decide which files you want to play on DirectShow (Windows Media Player), and this is What I use (Thanks My Brother Komeil http://www.komeil.com following is mostly by him)

1) Windows XP/2003:

  • DivX Pro: This will be used to play divx/xivd/3vid/mpeg-4

DivX Media Format Filters:

– DivX Video Decoder: DivXDec.ax (for decoding XVID)
– DivX Media Filter: DivXMedia.ax (for demuxing/decoding subtitles [included in the file])
– DivX Settings Manager: DivXSM.dll
– User Interface Library: QT-DX311.dll

While installing DivX, you’ll have an option for "DivX Media Playback Support" under "DivX Codec",

This is what’s called "DivX Media Playback Support" as a codec. The installed file is "DivXMedia.ax".

It’s used for decoding subtitles included inside the DivX file, and differes from files located
beside the DivX file, with ".sub" or ".srt" extensions. It’s not much accepted by users, and is
used rarely.

GSpot’s listing:

DSH XVID DivX Decoder Filter {78766964-0000-0010-8000-00AA00389B71} 0xff800000 divxdec.ax
DSH Avi DivX Demux  {85516702-9C45-4A9C-861B-BC4492D355DC} 0x00600000 DivXMedia.ax
DSH DXRE DivX Subtitle Decoder {BA11F969-397A-4146-AC96-236C3D76711D} 0x00600000 DivXMedia.ax
VFW DIVX DivX® Codec  vidc.divx    0x00200000 quartz.dll –> DivX.dll
VFW YV12 DivX® YV12 Decoder vidc.yv12    0x00200000 quartz.dll –> DivX.dll

  • Gabest (you can download from http://sourceforge.net/projects/guliverkli/):
    • MpegSplitter.ax: Splitter for all mpeg files (mpeg-1 and mpeg-2 videos)
    • Mpeg2DecFilter.ax: Decoder for Mpeg2 video (DVD-Video or Videos captured by DVB Cards)
    • VSFilter (DirectVobSub): Used to render avi external subtitles (.srt .sub)
    • MpaDecFilter.ax: Decoder for Mpeg-A.
  • AC3 Filter (http://www.ac3filter.net): This is full mpeg audio decoder, you may need this for decoding Mpeg-2 audio (DVD-Video)
  • QuickTime Player (http://www.apple.com/quicktime/player) or QuickTime Alternative: For playing .mov, .3gp, .amr, … ALL CRAPPY APPLE FORMATS
  • NVidia PureVideo: DVD-Decoder for all VGAs (not for nvidia only), I recommend this, If you select this so you may ignore AC3Filter and Gabest Mpeg2DecFilter
  • Real Player or Real Alternative (http://www.codecguide.com/about_real.htm): For playing real player file types, Real Alternative is DirectShow Filter for real files, so you can play real files in Windows Media Player.

2) Windows Vista/2008:

  • DivX Pro
  • Gabest:
    • MpegSplitter.ax
    • VSFilter (DirectVobSub)
  • NVidia PureVideo: The Gabest Mpeg2DecFilter will not work on Vista or Server 2008, so you may ignore AC3Filter and Mpeg2DecFilter and also note that you have to install MpegSplitter.ax for spitter needs of Mpeg2 videos
  • QuickTime Player or QuickTime Alternative
  • Real Player or Real Alternative

 

At last I have to tell These:

  • You may need "Ligos Indeo" for some .avi which was generated b the time of Windows 3.1. Also
  • You may use "CoreFLAC" for .flac: But this never worked for me, so I use dBPowerAmp and convert .flac files into Wma Professional 9.2 Lossless
  • You may use "CoreVorbis" for .ogg (And also some .avi files with ogg audio stream, you may use GSpot to see what you need): I never used OGGs, but for F.r.i.e.n.d AVI-DVD Collection, which audio-stream was ogg
  • You may use "Codec Tweak Tool" from K-Lite Codec Pack: This is what I use to see if everything is all right on Windows Codecs, this is detect some errors that GSpot cannot becuase this software is updated frequestly.
  • Trust me, never install lots of codec pack or codec packs in full more, They’ll install lots of crappy codecs on your computer.
  • Less codecs means faster OS.
  • "Windows Media Player cannot play DVD video. You might need to adjust your Windows display settings. Open display settings in Control Panel, and then try lowering your screen resolution and color quality settings." In Windows Vista This means, you do not have a proper DVD Decoder, you may get this error if you use Gabest and AC3 Filter on Vista or Server 2008, As I’ve told you above, use NVidia PureVideo and Gabest MpegSplitter instead.

If you like or don’t like what I use, just leave me comment

Sadjad Bahmanpour

 

Leave a Reply