I’ve been using the Vista version of Windows Media Center for a little over a month now. Initially I was underwhelmed, but after a lot of tinkering, some media reorganization, and a small hardware purchase I feel everything is finally working as well as MCE2005 did.
From comments and emails it seems I’m not the only one who has teething problems. In this post I’ll list a few of the tweaks I made that improved the performance of Media Center in Vista, and the $40 hardware change that made a huge difference.
By default Vista’s power management is set to “balanced”, and in balanced mode the minimum/maximum processor states are set to 5%/100% respectively. This means during periods of inactivity or low utilization your CPU performance to 5% of the norm. This can seem like a good thing, particularly for a HTPC where heat/noise is a concern, but it can also cause problems. If sudden activity requires more CPU time (e.g bringing up the guide or a menu while watching TV) then there can be a noticeable lag while the processor attempts to ramp back up.
Depending on your processor I’d recommend you switch to the High Performance plan, or change these settings from anywhere between 50%/100% to 100%/100%.
This option can be found in Control Panel->Power Options->Change Plan Settings->Change Advanced Settings.
By default Vista will index files stored on your hard-drive for fast searching. Normally this is a good thing, but for a HTPC it’s overkill. You can disable indexing on a per-drive basis. At the very least you should disable indexing for the drive or partition where your recorded TV is stored (keeping recorded TV on a separate drive/partition is a performance tip in itself
Computer->Right Click Drive->Properties->Index this drive for faster searching.
Aero is the name of the fancy new UI effects in Vista, which are partly the responsibility of a component called the Desktop Window Manager (dwm.exe). I’m not entirely sure why, but with Aero enabled I found dwm.exe would be taking ~5% of CPU time, even with Media Center set at fullscreen. Disabling Aero by choosing “Vista Basic” as the color scheme disables DWM and removes this problem.
This option can be found in Control Panel->Personalization->Window Color and Appearance.
NAS (Network Attached Storage)
With MCE2005 I kept all of my media (Music, Pictures, Videos) on my Windows Home Server box which was connected by a Wireless-G network. Aside from the occasional stutter in a film this worked perfectly. Everything was also kept in a backed-up location accessible by all machines.
With Vista MCE this did not work well at all, with videos being particularly problamatic. When viewing a folder of videos Media Center will attempt to create thumbnails but does this in a decidedly synchronous manner – the interface stalls while each thumbnail is created. When you have a folder of 20+ videos on a network drive you can pretty much forget having a usable interface for a good few minutes.
It’s been said Media Center is not designed to access networked media in this manner although I contend that is an implementation flaw. Creation of thumbnails or meta data should happen in the background and be invisible to the user, whether it takes two seconds or twenty.
Because I didn’t have enough space on my Media Center machine to store videos I plugged in a 500GB external HDD and setup a nightly synctoy task to keep the media files updated with my Windows Home Server. An alternative would be to turn off thumbnails, or network your machines using gigabit Ethernet (sadly the latter is not an option for me).
Video card / MPEG decoder
Vista Media Center now comes with a built-in MPEG-2 decoder allowing you to watch TV out of the box without the need to purchase a 3rd party solution. This isn’t entirely an altruistic move by Microsoft. Providing their own MPEG-2 decoder ensures an end-to-end protected media path for DRM reasons. By default Vista Media Center will not even allow the use of 3rd party decoders such as PureVideo, although they are ways to force this.
Vista’s video rendering supports DXVA (DirectX Video Acceleration), so if your graphics card supports DXVA and has the correct drivers you’ll benefit from hardware accelerated MPEG-2 decoding. Unfortunately, as of now most graphics cards don’t support this.
Under MCE 2005 all of my SDTV/HDTV decoding was handled in hardware by my Geforce 7800 and the NVidia PureVideo decoder. Under Vista, the PureVideo decoder was no longer supported and without DXVA support all decoding was performed in software. When viewing HDTV this put so much strain on my CPU that the UI would often become unresponsive.
I then tried to switch back to PureVideo (as mentioned there is a method to force Vista Media Center to use 3rd party decoders), after which hardware acceleration was again working. Unfortunately if Vista detects the broadcast-flag it will not allow playback via unsecured decoders, so to view premium channels such as HBO you must use the Microsoft decoder.
Fortunately ATI’s range of Radeon HD cards that support DXVA and HDCP under Vista are relatively cheap. The performance of the lower end HD cards for gaming may be questionable, but for decoding MPEG-2/4 they’re excellent and if you’re running an HTPC there’s really no need to buy a more expensive card. I picked up the Gigabyte Radeon HD2400XT for a shade under $50 which had the added benefit of being fanless. After installing it I was back to being able to watch all SDTV/HDTV channels with almost zero CPU usage.
I found the four tweaks above accounted for about 95% of the performance issues I was experiencing after upgrading to Vista. Depending on your system hopefully some of them will be of use to you.
Aside from the above tips there are also a number of guides on the Internet worth checking out about how to disable unwanted startup programs or services. In addition I have a nightly task scheduled that both defrags and reboots my system. I have no empirical evidence, but it seems to help everything stay nice and fast.