This KB article applies to you if you cannot convert MPG/VOB/DivX files to WMV9 using Windows Media Encoder 9, because WME9 encounters an error and crashes.
By system default Windows Media Encoder does not crash when you are trying to convert file. Windows Media Encoder becomes not responding because you have installed non-standard video codecs which causes Windows Media Encoder to crash.
This guide will familiarize you with GraphEdit and regsvr32 usage. For demonstration purposes this guide will be using a DivX file.
This tool package includes GraphEdit which is a visual tool for building and testing filter graphs. It is provided as an executable with the DirectX SDK. With GraphEdit, you can quickly build and test filter graphs to see if they function as you expect. You can even view a filter graph created by an application running in another process.
It also includes regsvrGUI to register/unregister directshow filters. This tool will log all your actions of registering and unregistering filters. So if you want to go back to your previous configuration you can easily do so by looking at the log.
The quartz.dll contains most of DirectShow's default filters. It is the core of DirectShow itself. Only a few filters reside outside of it. The MPEG2/DVD related ones in mpg2splt.ax and qdvd.dll; the digital TV filters are in a bunch of DLLs; the Windows Media filters are in qasf.dll; the DES ones in qedit.dll; the DV filters are in qdv.dll; the video capture filters, including the AviMux are in qcap.dll). -- Alessandro Angeli [MVP::DigitalMedia]
During the following procedures do not unregister any filter that belongs to any of the files mentioned above.
Use them for your DirectShow configuration whenever it is chosen by DirectShow.
Several filters of quartz.dll which you will identify as follows:
During the following procedures do not unregister any filter that belongs to \System32\mpg2splt.ax
Use them for your DirectShow configuration whenever it is chosen by DirectShow
Several filters of mpg2splt.ax which you will identify as follows:
It is expected that you have uninstalled all the codec packs by now. If not, please uninstall any codec pack you have and come back.
File > Render Media File and Open a DivX movie file
If you still have installed Codec Packs or the old filters were not installed properly, yours will look something like below.
For example, assume that your WME crash when Morgan Stream Switcher or MatrixMixer is used by AVI files. Most of the time, uninstalling software that include DirectShow filters do not always unregister its DirectShow filters and they remain registered. Now you have to manually unregister these DirectShow filters.
Go to Graph > Insert Filters
Scroll down to DirectShow filters
Locate the DirectShow filter that you need to unregister (in this example: Morgan Stream Switcher)
Use regsvrGUI to unregister the filter (in this example: C:\Windows\System32\mmswitch.ax)
In GraphEdit > File > New or Press Control + N
Render the same media file and see the difference
Follow the above steps until you unregister all other 3rd party DirectShow filters
In my case, I will continue the above steps until I remove Matrix Mixer
Once I unregister MatrixMixer, it will disappear too.
Go back to GraphEdit
Locate the DirectShow filter that you need to unregister (in this example: Matrix Mixer)
Use regsvrGUI to unregister the filter (in this example: C:\Windows\System32\matrix_mixer.ax)
Tip: You can use GSpot to see a list of all your video and audio codecs installed. It also provides information about their file locations.
In GraphEdit > File > New
Render the same media file and see the difference
Now you have configured direct show filters to play back DivX/XviD files properly.
In this example The audio and video of The American Wedding XviD.avi is splitted using Windows' default Avi Splitter (quartz.dll). Video is decoded using the standard DivX Decoder Filter (divxdec.ax). Audio is decoded using a standard filter: Fraunhofer-Gesellschaft IIS MPEG Layer-3 Decoder (l3codecx.ax). I didn't try to unregister that and use a Windows Default filter (e.g. ACM Wrapper) because it is obvious that the Fraunhofer-Gesellschaft IIS MPEG Layer-3 Decoder is a well recognized standard filter.
In this example the Video is further filtered through AVI Decompressor (quartz.dll). It may or may not happen in your case. Since it is a Windows Default filter, do NOT try to unregister it.
In my other system, Fraunhofer-Gesellschaft IIS MPEG Layer-3 Decoder is not installed and the Audio for same file is now filtered through ACM Wrapper (quartz.dll). So everything you see in these diagrams are fully depended on what you have installed in your system.
Now, try to convert a DivX AVI file in WME9.
If WME works without crashing you are done!
You are using all the proper codecs.
Now follow the same procedure for configuring MPEG1
File > Render Media File and Open a MPEG1 movie file
The rest should be self explanatory for you.
If you are unable to convert MPEG to WMV using WME9 Then
In this example:
Remove MainConcept MPEG Splitter
Follow the procedure until you finish up with a configuration looks like below (which uses Windows Default filters or at least error-free standard 3rd party filters)
In the following configuration, I use mp2split.ax to split the raw file and then InterVideo WinDVD decoders for Audio and Video to render them
Please refer to Windows Media Compatible Direct Show Configurations as well.
All default DirectShow filters (preferred)
Note: The InterVideo Audio Decoder will not enable WME to detect 6 channels
in the VOB file.
See related articles: Converting VOB directly to WMV with 6 Channels
Windows Default MPEG2 Splitter (mpg2splt.ax) with InterVideo WinDVD 5 Audio and Video Decoders (preferred)
Since you are using InterVideo Audio Decoder be sure you to configure it for 6 channels
All the default filters, including the MPEG2 splitters, are usually the best choice. If your system will not accept VOB files in Windows Media Encoder or you notice that Windows Media Encoder is extremely slower than before, then go with the default splitter (mpg2splt.ax) and InterVideo decoders as in the first suggested configuration.
WMV is less vulnerable to DirectShow filter changes, therefore you will most
of the time get the configuration as below.
However, if you have Morgan StreamSwitcher and/or MatrixMixer, you will get a different configuration which is highly NOT recommended if you are using Windows Media Encoder to convert DivX/XviD/3ivX/*ivX files.
Only 3ivX D4 4.5 from www.3ivx.com is installed
Here is a recommended way of how your WMV, XviD, MPEG2 and MPEG1 should be rendered after you have successfully configured the DirectShow filters. By the end of this guide hopefully you will be having a simliar DirectShow Filter configuration.
Notice that the key is to use Windows Default filters whenever it is possible. Follow this knowledgebase article to become familiar with GraphEdit and learn to configure the decoders on your own.
Thanks goes to Alessandro Angeli [MVP::DigitalMedia] at microsoft.public.windowsmedia.encoder for sharing his excellent suggestions. :-)