Friday, May 04, 2007

HD Video Performance in Vista Media Center (Followup)

In my previous post, I said that I had updated drivers and tweaked some settings to get pretty good 720p video playback on my HTPC. My HTPC is a couple of years old, so I'm still running an Athlon XP 3200+, 1 GB RAM, and a GeForce FX 5500 GPU.

I wrote about my "success" after watching the first 5 minutes or so of the last episode of Heroes with perfect audio/video sync. I got too excited (and posted declaring victory) after too little testing. When I tried watching other 720p videos later, they still experienced A/V sync problems (although not nearly as bad as they were before I started).

Tonight I did some more research and testing, and found another codec that seems to have fixed this issue (for real this time!). I had been using CCCP, which includes ffdshow, which uses the libavcodec for H.264 video. CoreAVC is another codec that several sources claim is the fastest H.264 codec available, and is at lest 30% faster than the libavcodec that I had been using. The CCCP folks have a pretty good wiki entry about why CoreAVC isn't included in CCCP, and how to use CoreAVC instead of ffdshow.

I tried it out, benchmarking my FPS before and after registering the new codec. I used this post as a general guideline to do the benchmarks using Media Player Classic (included in CCCP) and Fraps. I used the same 720p and 1080p sample videos links in the post. The videos have a framerate of 23.976 fps. My results (average framerates) for the 720p sample video are below.

libavcodec: 17.402 fps
CoreAVC: 23.983 fps


My 720p videos play like any others now, and I can skip forward/back without losing A/V sync. The audio plays immediately after the skip, and the video catches up and re-syncs within a second or two. My CPU utilization is quite a bit lower now too (it was 100% using libavcodec).

Unfortunately, the CoreAVC codec isn't free like ffdshow, but it's still cheaper than upgrading hardware.

No comments: