Troubleshooting

One of the most difficult parts of getting your HTPC up and running can be getting all your files to play. This section will hopefully give you an understanding of how to troubleshoot any problems you encounter.  My aim here is to try not to confuse people by using complex jargon, but describe things in simple terms.

 

My testing is completed under MediaPortal, but this should still be relevant to Windows Media Center also. The processes involved could also be applied to other files types you may be having difficulties with. If your learning about this for the first time, please make sure you read everything carefully and dig out that logical thinking cap!

 

Containers

Firstly then, just a quick note about the types of movies files you'll be playing.  Most common extensions you'll come across are: .avi, .wmv, .mov, .ts, .mkv.  These are known as containers, and can contain both audio and video data which have been compressed using codecs.  You will then require the correct decoder installed in order to play the data contained inside the container.  The different containers are used because they offer differing support and functions for the various compression methods.  For Example, the majority of high definition files you'll come across will likely be x264 encoded movies using .mkv containers. 

 

Essentially the container could contain any combination video and audio compressed data.  For example, you could have a DivX encoded video with an .mp3 soundtrack contained within an .avi file.

 

DirectShow

Directshow provides a common interface that can be used accross many different windows based applications.  Therefore, the way in which MediaPortal, Windows Media Center (MCE) and Media Player Classic handles video files is done in exactly the same way.  As long as no additional settings or post processing has been setup in the application, if you can get the video to play in one Directshow application, it should play in all the others as well.

 

There is a non Directshow player called VLC, which will play most file types and means you dont have to install any extra filters or codecs.  Why not just use VLC then?  Well, to achieve a smoothly operating HTPC, you want everything working and playing all under one seamless interface.  Using applications like MediaPortal and MCE help you to achieve this.  Directshow filters can also give you extra options and greater flexibility over how you want your movie to be rendered.  Personally, I have had issues playing some file types with VLC with regards to performance and sound problems, and theres nothing you can really do to fix it.  But with Directshow, if you get the correct decoders and filters installed, you'll be able to play any file type and should get better performance.

 

As mentioned, Directshow renders movies by using filters, which can be connected up in different ways to build a filter graph:

 

 

fig1

 

This shows exaclty what filters and decoders are being used to render your movie file. 

 

You can display a filter graph using a peice of software called Graphedit.  Basically, if you can get the movie to play in graphedit, then it should play in any other Directshow application.  So, if you have problems try to get it to play in graphedit first.

 

Graphedit

Open GraphEdit, and click File ---> Render Media File, select the file you would like to view the graph for and click Open.

 

If you have opened a HiDef files, chances are the graph will look like fig1 above, which is a 1080p trailer for the film 300 (Apple trailers).

 

 

Fig2

 

The most useful buttons are those highlighted above.  The first is the play button, and this an excellent way to test if the file plays how you want it to.  If you have your PC plugged into an AV receiver its also an excellent way to test if the sound is output in the format it should.  The second button allows you to add and test various other filters and decoders which are installed on your system.

 

The good thing about Graphedit is that you can access all the settings that are behind these filters and decoders.  Just right click on them and go to propeties.  This is an excellent way to test the various settings and see what affect they have on your system.  Including how much CPU is being used to play the files.  Just open task manager and monitor the CPU usage while playing the file.

 

Remember: It doesn't really matter what combination of filters your using, as long as the final result is what YOU want. 

 

FilmMerit

The next tool you will need is FilmMerit.  Once you have figured out which filters and decoders you want to use using Graphedit, you make the permanent changes with FilmMerit.  All Directshow filters on your system have a merit associated with them, which determines which one should be used first.  So if you find that one filter/decoder is being used instead of another, we can use FilmMerit to modify the Merits of them.  All should become clear in the example later.

 

 

 

Don't worry if it displays errors in your filters, as more than likely they wont be with the ones you'll be using.  Firstly note it will be running in Read-Only mode.  So, click the button on the toolbar highlighted on the toolbar, then click

Help--->Read-Only.  This will now allow you to make changes to the Merits.

 

All you need to do now is find the relevant filters and modify them accordingly, clicking the buttons on the right to set them to "Preferred" or "Unlikely" etc.

 

Now using the above tools, you should now be able to modify and troubleshoot your own HTPC, to enable you to fix any problems you have with the video or sound.  Continue onto the next page to see an example of how this all comes together.

 

 Examples >