Vista MCE Codec Bible
As codec conflicts are inevitable as soon as you install several applications that do the same thing, and as there is NO single Codec Pack that just makes everything work, I'm sharing my experience on configuring DivX, XviD and MKV playback for maximum quality and feature support.
This is especially important for those who need subtitles, multiple audio streams, and features like resuming, fast forward and rewind in Media Center -- all sorely lacking in the default setup.
I've extensively researched workarounds and solutions for common problems, limitations and annoyances, like the Haali media splitter crashing with subtitles, FFDShow picking the "right" subtitle file (if properly named) but unable to detect alternate-language subtitles for the same video, the impossibility to fast forward and rewind DivX and XviD movies in Media Center, the lack of resume support for the same files, the DivX codec on its own being unable to correctly play a "BivX" (DivX with multiple audio streams, e.g. the movie and the commentary, or two audio languages) without losing audio-video synchronization, the high CPU usage of some codecs and filters versus the low quality of others, etc.
What works for me is the following series of products installed on my MCE, installed in this order:
Making it work for DivX / XviD AVIs:
NOTE: when (re-)installing FFDShow, preferably use the following options:
NOTHING else for now. In Speaker Setup (next screen), choose your setup correctly, or just pick 2.0 (stereo) [see below !]. If asked to restart: do so.
- open the FFDShow Audio Configuration tool:
The Volume filter can allow you to normalize volume or increase surround; the Mixer will modify the audio stream to fit your speaker configuration. Note: if MP3 audio doesn't play correctly in movies, you may associate MP3 audio with LibAvCodec here. If AAC and/or AC3 don't work, you can enable that here too. These steps are actually necessary if you want to play "BivX" (dual-audio avi) movies.
The Volume filter can allow you to normalize volume or increase surround; the Mixer will modify the audio stream to fit your speaker configuration.
Note: if MP3 audio doesn't play correctly in movies, you may associate MP3 audio with LibAvCodec here. If AAC and/or AC3 don't work, you can enable that here too. These steps are actually necessary if you want to play "BivX" (dual-audio avi) movies.
- open the FFDShow Video Config:
The "Raw" option in the Codecs ensures that FFDShow Video is always used when decoding movies; it won't do the actual decoding, but act as a "middle man" which allows other stuff, such as displaying subtitles, but more importantly, it'll allow us to have Automatic Resume as well as fast forward and rewind for nearly all video formats [requires MediaControl: see below].
- open the DivX Decoder Configuration Utility:
These options ensure that the DivX Pro Codec is used as default for DivX, XViD and related formats, with Full Deblocking & Sharpening enabled (say what you want, it displays much better than XViD's decoder or FFDshow on its own).Leave "DivX Logo Watermark" ON, it'll help you verifying that this codec is being used.
- open XVid's Decoder configuration utility:
make sure it is NOT the default for anything (uncheck all under FourCC support), and enable the four deblocking and dering options. I'm just keeping XviD for encoding, and as a backup if DivX has a problem with a file.
- open the DirectVobSub (VSFilter) configuration tool:
Don't worry if an error occurs after quitting the DirecVobSub configuration, it's normal if you started it on its own. This doesn't happen if you double-click the "green arrow" that appears in the system tray while playing a movie with subtitles played through DirecVobSub. On Resolution Doubling: 1279x719 is what works for me. It'll double the movie size (and subtitle resolution, making them much nicer) for all movies that are any size up to 1 pixel smaller than a standard .MKV 720 lines movie. Above that, you MAY only see half the picture with this option enabled. This setting may not be right for all users. Some may be able to use "Always double resolution" in all cases, or may have to set it to "1919x1079" (1 pixel smaller than 1080 lines)... just try it out with a 1080p .MKV movie and see how far you can go.
Don't worry if an error occurs after quitting the DirecVobSub configuration, it's normal if you started it on its own. This doesn't happen if you double-click the "green arrow" that appears in the system tray while playing a movie with subtitles played through DirecVobSub.
On Resolution Doubling: 1279x719 is what works for me. It'll double the movie size (and subtitle resolution, making them much nicer) for all movies that are any size up to 1 pixel smaller than a standard .MKV 720 lines movie. Above that, you MAY only see half the picture with this option enabled. This setting may not be right for all users. Some may be able to use "Always double resolution" in all cases, or may have to set it to "1919x1079" (1 pixel smaller than 1080 lines)... just try it out with a 1080p .MKV movie and see how far you can go.
- open the AC3Filter Config tool:
Note that the "Output Format" present in different tabs depends on your actual system. Select what corresponds to your actual audio outputs, not the number of speakers you have. If you have 4 speakers but they're connected using a single "Audio Out" on your computer and not Front and Rear separately, you must select "2/0 Stereo".
- opening movies for analysis and codec / filter tweaking in HeadBand GSpot:
(Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[ffdshow Video Decoder ]>--(C)-->[Video Renderer ]Failed to connect Output pin 0x06c6da9c ("Stream 00") on AVI Splitter to input pin 0x076c7f6c ("In") on filter 0x04f82b1c ("ffdshow Video Decoder").ConnectDirect() failed. Error: 0x80040207: [unknown] (Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[DivX Decoder Filter ]>--(C)-->[Video Renderer ]Video Render OK. Use [3] to play. (Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[Xvid MPEG-4 Video Decoder ]>--(C)-->[Video Renderer ]Video Render OK. Use [3] to play.(Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[VFW:XviD MPEG-4 Codec ]>--(C)-->[Video Renderer ]Video Render OK. Use [3] to play. The stuff in red above shows that FFDShow failed to render this video "on its own". That's quite normal, because DivX and XviD decoding are disabled in FFDShow (change those options temporarily and you'll see this line will be green too).
(Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[ffdshow Video Decoder ]>--(C)-->[Video Renderer ]Failed to connect Output pin 0x06c6da9c ("Stream 00") on AVI Splitter to input pin 0x076c7f6c ("In") on filter 0x04f82b1c ("ffdshow Video Decoder").ConnectDirect() failed. Error: 0x80040207: [unknown]
(Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[DivX Decoder Filter ]>--(C)-->[Video Renderer ]Video Render OK. Use [3] to play.
(Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[Xvid MPEG-4 Video Decoder ]>--(C)-->[Video Renderer ]Video Render OK. Use [3] to play.
The stuff in red above shows that FFDShow failed to render this video "on its own". That's quite normal, because DivX and XviD decoding are disabled in FFDShow (change those options temporarily and you'll see this line will be green too).
(Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[DivX Decoder Filter ]>--(C)-->[DirectVobSub (auto-loading version) ]>--(D)-->[Video Renderer ](Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[ffdshow Audio Decoder ][Default DirectSound Device ] or (Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[DivX Decoder Filter ]>--(C)-->[DirectVobSub (auto-loading version) ]>--(D)-->[Video Renderer ](Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[ffdshow Audio Decoder ]>--(C)-->[AC3Filter ]>--(D)-->[Default DirectSound Device ]
(Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[DivX Decoder Filter ]>--(C)-->[DirectVobSub (auto-loading version) ]>--(D)-->[Video Renderer ](Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[ffdshow Audio Decoder ][Default DirectSound Device ]
or
(Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[DivX Decoder Filter ]>--(C)-->[DirectVobSub (auto-loading version) ]>--(D)-->[Video Renderer ](Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[ffdshow Audio Decoder ]>--(C)-->[AC3Filter ]>--(D)-->[Default DirectSound Device ]
NOTE: if you have other filters from e.g. Sonic, Cyberlink, Nero, Roxio or others occuping those "top" positions, either lower their Merit or unregister them. If they are used to "split" or "decode" any of the formats used by Media Center, they'll cause unpredictable behavior. Also, you must make sure that Microsoft's MPEG video and audio decoders are always at the top of the list, as these are used for Recorded TV in Media Center. See below in the Matroska section for details.
(Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[DivX Decoder Filter ]>--(C)-->[ffdshow Video Decoder ]>--(D)-->[DirectVobSub (auto-loading version) ]>--(E)-->[Video Renderer ] (Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[ffdshow Audio Decoder ]>--(C)-->[AC3Filter ]>--(D)-->[Default DirectSound Device ]
(Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[DivX Decoder Filter ]>--(C)-->[ffdshow Video Decoder ]>--(D)-->[DirectVobSub (auto-loading version) ]>--(E)-->[Video Renderer ]
(Src)-->>--(A)-->[AVI Splitter ]>--(B)-->[ffdshow Audio Decoder ]>--(C)-->[AC3Filter ]>--(D)-->[Default DirectSound Device ]
... you can see in the 1st line that the FFDShow Video Decoder now comes after the DivX Decoder in the same rendering path.
If FFDShowVideo Decoder doesn't appear at all in your case, try opening FFDShow Video Configuration, go to Codecs, and enable libavcodec for DivX 4/5/6 and for XVid temporarily. Save, then render an XviD and a DivX in GSPot. Back in the codecs screen, re-disable XViD and DivX 4/5/6 and save, then back to GSpot (reload !!) and render again using MS A/V. Now FFDShow Video Decoder should appear... don't ask me why.
Now for Matroska's .MKV movies:
Load a .MKV high-res movie (720p or 1080p) in MediaInfo and verify that it uses an AVC video stream and an AC-3 Audio stream like proper HD rips should (note: .MKV movies don't "have" to be HD, there are also low-definition MKVs. If it's over 1 GB for a 40-minute series episode, it's probably HD). Close MediaInfo. Open the same file in GSpot. You can only render using MS A/V, the other rendering options are disabled: press the "1" button to render.
NOTE: Haali vs. Gabest's Matroska Splitter: Gabest's Matroska splitter has issues where .MKV movies in 1080p would inexplicably "stutter" when played from a LAN device (e.g. a NAS box), and testing showed that Haali doesn't have this problem. To avoid subtitle issues with Haali, make sure it doesn't handle the subtitles (DirectVobSub should do that).Check your rendering results. If you see 3rd party filters or codecs like e.g. "Nero Splitter" (but this also applies to stuff from Sony / Sonic, Roxio, ...), proceed as follows - BE CAREFUL!!.
Lowing the Merit of / Unregistering Unwanted Filters and Codecs:
You should see the following:
(Src)-->>--(A)-->[Haali Media Splitter ]>--(B)-->[DivX H.264 Decoder]>--(C)-->[DirectVobSub (auto-loading version) ]>--(D)-->[Video Renderer ] (Src)-->>--(A)-->[Haali Media Splitter ]>--(B)-->[AC3Filter ]>--(C)-->[Default DirectSound Device ]
(Src)-->>--(A)-->[Haali Media Splitter ]>--(B)-->[DivX H.264 Decoder]>--(C)-->[DirectVobSub (auto-loading version) ]>--(D)-->[Video Renderer ]
(Src)-->>--(A)-->[Haali Media Splitter ]>--(B)-->[AC3Filter ]>--(C)-->[Default DirectSound Device ]
FFDShow's "Raw Video" option: Why you should enable this
Wonder why I insist on using FFDShow and having it enabled for all types of video (through the "Raw Video: All Supported" setting in FFDShow video config) ?
Because it's the only way -- in conjunction with the excellent Media Control tool -- to enable Fast Forwarding, Rewinding and Resuming in DivX and MKV movies.
Media Control for Windows Media Center
You can download MediaControl from http://damienbt.free.fr/index.php.
Current version is 6.0.2 You need to have .NET installed first, but due to a bug in the installer, MediaControl may continue to prompt to install it. Ignore this and continue the setup.
Mind the following options, which you need to set through the Media Control Configuration Program:
Note that Media Control can also be used to "add" FFDShow processing to Live TV, Recorded TV and DVD Playback in Media Center. This would enable picture improvement, rescaling, removal of black bars, etc. for those video sources. I haven't really experimented with it.
Also, Media Control can be used to assign "macros" and some direct commands to your MCE Remote. Among other things, you can use the Direct Commands to change the subtitle stream on the fly, without needing to minimize MCE to go to the DirectVobSub icon.Audio Stream switching is theoretically also possible, but I couldn't get it to work for "BivX" movies.
Macros are launched through a "prefix" key (the Yellow button by default). They can be used for almost anything, from launching keyboard commands to starting external programs.
Direct commands are accessed during playback by pressing the Up key on the remote; then you can use the Left & Right keys to scroll through the available commands, and Up & Down to change the values.
... and what now ?
Now you can try playing media files in Media Player by double-clicking them in Windows Explorer. If everything has been done correctly, you'll see the following icons in the System Tray when opening a DivX or XviD file:
When movies are decoded through the Divx Decoder, you'll also see the DivX logo as a watermark at the bottom right of your video for about 5 seconds each time you start playing a video. I leave this on to ensure I'm always using this codec (upgrades etc. can change the codec merits !).
You can right-click on the green arrow icon (DirectVobSub) in the system tray to change subtitles or to change audio streams if there are several. You can then also see which audio / video filters & codecs are in use to play this file.Right-click the blue FFDShow icon to switch audio stream as well, and to enable / disable its filters, if any. The same goes for the red FFDShow icon. Both FFDSHow icons allow you to enable / disable their OSD, which shows additional info in the video window, which is great for troubleshooting when you're starting. Advice: configure the OSD for Video to display CPU Load, Input and Output description, Input Size, Encoder and Decoder info. For the audio OSD, use the same except Output description and Input Size.
Caveat: with the setup I've explained here, double-clicking a DivX or XviD video file in Windows Explorer, in order to play it in Media Player, will cause the following problem if this file has no subtitles: it will take longer before it starts playing, and the DivX system tray icon will appear and disappear several times. This is a consequence of passing all raw video through FFDShow, and there is no workaround for this in conjunction with the DivX 7 codec. No problem though: this does not occur when playing in Media Center... " src="http://thegreenbutton.com/emoticons/emotion-1.gif" mce_src="/emoticons/emotion-1.gif">.
You can now open the file in Windows Media Center too. In order to properly monitor the results, proceed as follows for testing:
Conclusions:This method for configuring your codecs gives you the following advantages and features:
Resources and Downloads:
OK That's it for now. Last updated: 19 September 2009, 20.10 CET
______________________________________________________________
Also check out my post on Changing Vista Media File Associations in this thread:http://thegreenbutton.com/forums/thread/314597.aspx
Greetings,
Frank.