Monitoring DirectShow filter chains and troubleshooting codecs.

By | January 13, 2011

Where do I start?You just got your brand new Windows 7 HTPC up and running, configured the necessary shares to access all of your media, installed the codecs needed for playback and then find out that things just are not working like you expected.  For whatever reason, some other codec is being used to decode your video and/or audio, but you don’t know which one or even how it got there.  Where do you even start in troubleshooting this?  Hopefully, this post will point you in the right direction.

RadScorpion’s MONOGRAM GraphStudio has been an invaluable tool for me over the past few years.  I don’t use it much anymore since I finally have a handle on most codec issues that used to haunt me, but I still need it occasionally since I like to ‘experiment’ and things don’t always work out like I expect them to.  However, since you’re here and either a beginner to HTPCs or are just having fits getting the correct codec to work with your media, GraphStudio may look a little confusing.  I’m going to help show you how it can be an aid in getting control of your codec mess.

  1. The first thing you want to do is download the MONOGRAM GraphStudio version for your OS platform as it is available in both x86 and x64 versions.  There is no installer, so be sure to download the executable somewhere it is easily accessible.
  2. First launchExecute GraphStudio.  Looking at the interface, it’s fairly simple looking.  However, if you take a moment to click on the menu bar items, you will see there are many options available that probably make little or no sense to you.  That’s OK, we’re going to be using GraphStudio in the simplest of manners.
  3. Default graphNow, locate a media file (preferably something containing both audio and video, like an AVI file).  Simply drag-and-drop it directly into the GraphStudio interface.  In my example image, I have only default codecs enabled on a 64-bit system.  You can see how the media file is split out into audio and video streams and which DirectShow filters handle each…all the way to the output.  Just ignore the green colored box…it’s color-coded to indicate a DMO (DirectX Media Object), which we’re not getting into.
  4. Enable with Win7DSFilterTweakerNow, what if we want to introduce a new set of codecs and see if they are properly installed and working?  Let’s try.  I installed ffdshow x64 using default settings and then used Win7DSFilterTweaker to promote them over the Microsoft Media Foundation internal decoders.  Depending on your OS platform (x86/x64), the image may look a little different than what you see when using it.  Just make sure you enable the codecs for the platform your HTPC frontend uses for playback.
  5. New codecsNow, we take a look and see if everything is being passed down the DirectShow chain like we want.  If you closed GraphStudio, execute it again.  Otherwise, just drop the same media file used previously directly into the GraphStudio interface once more.  If everything worked correctly, you should be looking at an image similar to the one at the right.
  6. A you saw in the image, the AVI Splitter is now sending the audio and video streams to the enabled ffdshow decoders for each respective stream.  It works!

As you can see, GraphStudio can be a very powerful troubleshooting tool even its simplest use.  Being able to actually ‘see’ what is happening with your media files during playback takes much of the guesswork out of what’s going on in the background so that you can concentrate on what’s really going wrong.


GraphEdit

Graphedit


If you play around with GraphStudio enough and really want to get into some custom graph building, you may also be interested in GraphEdit.  I won’t get into using GraphEdit (just yet, anyway), but you’ll find the interface very similar.  Be careful if you decide to ‘play’ around though…you can do some major damage if you don’t know what you’re doing!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.