How Tos:

Install
Quick Start
Trim
Cut Commercials
Demux
Strip Streams
Table Editor
Direct Show Control
Direct Show Troubleshooting


Windows Direct Show Control Troubleshooting

This guide will help you resolve any Video Preview issues you may have in TSPE such as no video preview or if the video preview uses the wrong filters and you want to fix this permamently.

Quick Start:

  • Uninstall / Reinstall Haali Media Splitter and FFDShow
If you still do not get video preview then test your direct show filters:
  1. Download and Install Graphstudio / Graphedit
  2. Load video into above (Drag / Drop)
  3. Video should be rendered, if not...
  4. New graph
  5. Insert Haali Media Splitter Direct Show Filter
  6. Select your video TS file when prompted
  7. Insert FFDShow Video Decoder Filter
  8. Connect (Drag / Drop) Video Output pin of Haali Media Splitter to FFDShow Video Input pin
  9. Right click Video Output pin of FFDShow
  10. Select Render Pin
  11. If video is displayed, use TSPE's DirectShow Control or use 3rd party filter managers.

Detailed Walkthough:

TSPE uses the Direct Show Filters you have installed in Windows.

To ensure video is displayed correctly in the Video Preview Window, you must ensure you have a working Direct Show Filter setup.

If you do not get a video preview when you load a file you should get an error message in the status window as follows:

"Error Enabling Video Preview, Disabling"

The first thing to try is to reinstall Haali Media Splitter and FFDShow. This should usually resolve the issue.

However, in some cases the video preview still won't work. This could be because Windows chooses a different DirectShow filter instead of Haali and FFDShow.
  • Windows Vista and XP choose which filters to try by looking at each Filter's "Merit".
  • Windows 7 will use it's own "Media Foundation" framework and use Microsoft DTV-DVD Video and Audio decoders in preference to the 3rd party DirectShow filters installed on the system.
There are two things you can do in this situation:
  1. Use TSPE's Direct Show Control to select the video decoder of your choice
  2. Investigate and change the default filter order to use your preferred filters using 3rd party software.

Manually changing the Direct Show Filter order

If you want to change the default filter order to use your preferred filters manually you will need to use a 3rd party application.

There are two Freeware 3rd party applications that you can use to diagnose DirectShow filter issues:
  1. Monogram GraphStudio
  2. Codec Guide Windows 7 Preferred DirectShow Filter Tweak Tool
The first is Monogram GraphStudio which is an extended version of Microsoft's Graphedit. Graphedit has been around for many years and there are many tutorials around the Internet on how to use it. However, Graphedit does not allow you to change Filter Merits. GraphStudio works very similar to Graphedit but it does let you change the filter merits.

The second is Codec Guide's Windows 7 Preferred DirectShow Filter Tweak Tool. This tool is for Windows 7 and lets you change the default behaviour of using Microsoft's Media Foundation framework to allow 3rd party DirectShow Filters to be used.

The first thing we need to do is investigate what is going on when we open a video file using GraphStudio.

Using Graphstudio

When you load Graphstudio you should see the following:

Graphstudio Main

The Main Screen is a canvas where we can insert various DirectShow filters and connect them together.

Creating an Automatic Filter Graph

First, try to load a video into Graphstudio by dragging and dropping your TS file into the main window. A Graph should appear with various filters connected to each other showing how Windows by default would decode and play back your video. For example, we'll use a h.264 video TS file:

Graphstudio Pirates Default

Here we can see 3 filters connected together:
  1. Pirates of the Carribean bbchd.ts
  2. Microsoft DTV-DVD Video Decoder
  3. Video Renderer
We can also see the "Video" output pin of the TS file is connected to the "Video Input" pin of the Microsoft Video Decoder. The "Video Output 1" pin from the Microsoft Video Decoder is connected to the "VMR Input0" pin of the Video Renderer. We can also see no audio pins are connected together.

You can play back this graph and you should see a video window appear with the video playing. However, there is no audio.

If you were to open this TS file in TSPE, the Microsoft Video Decoder filter will be used by Windows by default which would mean we wouldn't have any audio playback in TSPE. Obviously, this is not what we want.

We want to have FFDShow decoding the Video and the Audio instead of the Microsoft Video Decoder filter.

Creating a Custom Filter Graph

Let's start again with a New Graph (Menu File->New, or press the first "page" toolbar button).
  1. Select Menu Graph -> Insert Filter... A filter selection window will appear.
  2. Ensure "DirectShow Filters" is selected in the top left dropdown box and scroll down to and select "Haali Media Splitter".

  3. Graphstudio Filters Haali Selected

  4. Press the "Insert" button.
  5. A popup window will appear, browse to the location of your TS file.

  6. Graphstudio Haali Browse for File

    In the background the name of your TS file will appear as a source filter on Graphstudio's workspace.

  7. Now select "FFDShow Video Decoder" from the filter list and click the Insert button.

  8. Graphstudio Filters FFDShow Selected Low Merit

    In the background an FFDShow Video Decoder filter will appear on Graphstudio's workspace.

  9. Close the Filter Selection window and you should see the following:

  10. Graphstudio Haali Source, FFDShow Video Decoder

  11. Now click on the FFDShow Video Decoder box and Drag and drop it to the left of the TS file source box.

  12. Graphstudio Haali Source, FFDShow Video aligned

  13. Click on the small pin box on the right of the word "Video" on the source file and drag and drop it to the "In" pin box on FFDShow Video Decoder.

  14. Graphstudio Haali Source FFDShow Video Connected

    You should now have the video output of the source TS file connected to the Input of the FFDShow Video Decoder.

  15. Now right click the "Output" pin of FFDShow Video Decoder and a small menu will appear:

  16. Graphstudio Haali Source, FFDShow Video Out Pin Menu

  17. Select "Render Pin" from the popup menu.

  18. You should now have a new filter inserted called "Video Renderer" and conneced from FFDShow Video Decoder's Output pin to the "VMR Input0" pin of the Video Renderer.

    Graphstudio Haali Source, FFDShow Video Rendered

  19. Now right click the "Audio" pin of your source file and select "Render Pin" from the popup menu.
  20. You should now have the following:

    Graphstudio Haali Source, FFDShow Video / Audio fully Rendered

  21. Test the graph, click the green Play button on the main toolbar.

You should see a video window appear and the source file playing with audio.

If you do not get Video playback with audio, there could be configuration issues with FFDShow or Haali. There also could be an issue with your TS file. Try testing with a different TS file from a different source to try and narrow down the issue.

Now you have a working filter graph, lets look at the Filter Merits to make FFDShow work automatically.

Changing Filter Merits

Let's look at the Filter Merit of FFDShow. In Graphstudio, select Menu->Graph->Insert Filters... and select FFDShow:

Graphstudio Filters FFDShow Selected Low Merit

Here we can see the Filter Merit on the right hand side under "Filter Details". The current Filter Merit is "0x00400000". (Note that the merit has been changed previously for the purposes of this example.)

Let's compare to the Microsoft DTV-DVD filter:

Graphstudio Filters Microsoft DTV-DVD Selected

Here the Filter Merit for Microsoft DTV-DVD filter is "0x005fffff".

As the Filter Merit of Microsoft's DTV-DVD Video Decoder filter is higher, it should be chosen in preference to FFDShow when automatically creating filter graphs as it has a higher merit. This is the case in Windows XP and Windows Vista, but not necessarily for Windows 7.

We want FFDShow to have a higher merit, so let's change FFDShow's Filter Merit manually:
  1. Select FFDShow Video Decoder in the list of Filters.
  2. Click the "Change merit" button on the right hand side.

  3. Graphstudio FFDShow Video Filter Merit Before Change

  4. From the "New value" drop down list select "0x00800000 (MERIT_PREFERRED)"

  5. Graphstudio FFDShow Video Filter Merit After Change

  6. Click OK and you should see an Information message box saying "Merit change succeeded".
  7. Reboot to ensure Windows applies the change.
  8. After the system has started, re-run Graphstudio and drag / drop your TS file to test.
  • If you are running Windows 7 you may find that Microsoft DTV-DVD Video Decoder is still being inserted instead of FFDShow! What the heck is going on?

Overriding Windows 7 Media Foundation Framework

Windows 7 by default uses it's new Media Foundation Framework to ensure video playback with popular media formats instead of using the DirectShow Filter Merit system used by Windows XP and Vista.

To override this, we need to use Codec Guide's Windows 7 Preferred DirectShow Filter Tweak Tool

  1. Download and run this utility:

  2. Windows7 DS Filter Tweaker main

  3. Click on the "Preferred decoders" button:

  4. Windows7 DS Filter Tweaker Preferred Decoder Before Change

  5. Click "Use Merit" for H.264 for both 32-bit and 64-bit sides (repeat for any other codecs you want to override).

  6. Windows7 DS Filter Tweaker Preferred Decoder After Change

  7. Click the "Apply and close" button
Now test in Graphstudio by drag / dropping your TS file. You should now find FFDShow is being used instead of Microsoft's DTV-DVD Video decoder! This will also be the case in TSPE.

Success!

Summary

We have seen that to make TSPE use our preferred video or audio decoder we can select the desired codec in TSPE directly under "Direct Show Control".

Alternatively, we can change our system using the DirectShow merit system and / or override Microsoft's Media Foundation Framework to use our preferred codecs using Graphstudio or the Windows 7 DS Filter Tweaker 3rd party applications.