DXVA and MKV in Windows 7

November 06 6 Comments Category: Posts

The Microsoft WMF codec supplied with Windows 7 does a pretty good job of decoding most formats including VC1 and x264. Unfortunetly it doesn’t understand the Matroska container. So step 1 is get this recognised, for this we need the Haali Media Splitter. This will register splitters for Ogg (.ogm/.ogg), Matroska (.mkv) and MPEG4 (.mp4/.mov) containers.

Haali Media Splitter Installer

Haali Media Splitter Installer

Once this is installed you will find that your Matroska files will play in Media Center/Player but not using DXVA, so will be using a lot of cpu (a 30mbit 1080p VC1 video I have was maxing out my Core 2 Duo E6300 1.86GHz). So step 2 is to find and install a DXVA capable codec. Media Player Classic Home Cinema has such a codec, amongst many others which are available as a standalone filters (in 32bit and 64bit form). The one we’re interested in here is MPCVideoDec.ax. So copy this file to your system32 directory (Syswow64 on 64bit systems, i think ? The 64bit codecs go in system32 on 64bit systems, if you need the codec to work in 32bit applications you’ll the 32bit version as well and that would go in SysWOW64) and run the following command from a command prompt (make sure to run the prompt as administrator if you have UAC enabled)

Register the MPCVideoDec Codec

Register the MPCVideoDec Codec

Now we’re close, sadly Media Player/Center will still use the Microsoft decoder as that is the preferred decoder so we need to change this. We could dive in to the registry and faff around with loads of CLSIDs ourselves, or we could use the Preferred Filter Tweaker for Windows 7 from clsid on the doom9 forums. Download and run this, and then select MPCVideoDec for H264/AVC and VC1.

Preferred DirectShow Filter Tweaker for Windows 7

Preferred DirectShow Filter Tweaker for Windows 7

Apply those changes and restart Media Center/Player (if its open), and try opening a Matroska file again. Now you should find the CPU much reduced thanks to DXVA. My CPU usage playing back the same 1080p file as before is now under 5% as you can see below.

1080p Playback CPU Usage

1080p Playback CPU Usage

There is one downside to this however, because this codec requires the decoder to be connected directly to the renderer there is no way (that I can find anyway) to display subtitles within Media Player/Center. If you have a Matroska file with subtitles you’ll have to drop out and play them in MPC-HC, which can display subtitles and still decode with DXVA. If anyone has a way of enabling this in Media Center please let me know.

UPDATE 11/11
Added subtitle caveat and corrected the 32/64 bit file locations. Isn’t it somewhat ridiculous to put 32bit dlls in a folder with ‘64′ in its name, and vice versa ?

6 Responses

Write a comment
  1. Hopefully you’ll see this, but what about audio? Would I still need AC3 filter? I do play divx files that have 5.1 ac3 audio. And have played mkv files with dts and probably dolby something or other as well. I’m using MCE 90% of the time.

    I own windows 7 x64 no codecs installed yet on an ATI 785G board using onboard realtek sound with spdif to DD DTS 5.1 receiver. 7.1 Dolby True-HD etc don’t matter to me and can all get downmixed to 5.1 hopefully. Thanks a ton if you can shed some light on this and give me some pointers on making sure surround audio comes through. Thanks.

    Mike B 11 January 2010 at 12:54 am Permalink
  2. Yes you’ll need AC3filter or the ffdShow audio codec to decode audio such as DD or DTS. Both of these should allow you to configure which codecs are decoded and which are pass-through to your AV receiver. If you’re happy with the video decoder as it is then I’d suggest you go with AC3filter as that will introduce fewer new components to your system. Hope this helps, let me know how it goes.

    marcroberts 11 January 2010 at 3:27 pm Permalink
  3. spdif only transports upto 5.1 channels. You’ll need a card with native hdmi (I don’t know if one exists yet), or revert to the old multiple jack solution; you know 2 ch./jack on many soundcards.

    Raymond 7 February 2010 at 8:20 am Permalink
  4. take a look over at the ffdshow tryouts project: Discussion & Development forum,i think they are close to resolve the issues whit dxva and subtitles!

    http://forum.doom9.org/showthread.php?t=120465&page=553

    mvh bitzorro.

    bitzorro 10 March 2010 at 2:17 pm Permalink
  5. [HowTo] Enable DXVA H264 Decoding for MKV + Subtitles for Windows Media Player/Center on Windows 7

    http://www.youtube.com/watch?v=2jCV1914A7E

    tm 7 May 2010 at 9:43 am Permalink

Trackbacks / Pingbacks

  1. [...] Marc has written a ferocious guide on how to take the load off your CPU when watching HD rips on Windows Media Centre. Check it: http://marcroberts.info/2009/11/dxva-and-mkv-in-windows-7/ [...]

Write a Comment

Commenter Gravatar