Sunday, November 7, 2010

HTPC - Home Theater PC

I have been running two modified XBoxes (original ones) as HTPCs for quite a few years now. It required a hardware hack that has been thoroughly documented on the Internets.

For the software part of the HTPCs I was (am) running XBMC - XBox Media Center. Let me just say that it works great, nice interface (that uses the XBox remote) and runs pretty much all media files (even DVDs as .ISO files) as well as most online media sources (YouTube, internet radio).

There are only a couple of drawbacks right now, no Hulu or Netflix support, and no ability to play Blu-ray disks, or files, or .ISOs.

Right now most of my most played media is stored in a NAS (or two). But recently I have been playing with Blu-ray disks. My BD player takes (it seems) forever to boot and load a disk, so if I want to watch a BD disk, I had better plan on putting in the time. And although the BD player has online media access (youtube) it is slow and clumsy.

So I started ripping BD disks. I am still experimenting with file type, so I use AnyDVD (hd) to rip an ISO, and I use MakeMKV to rip into both MKV files, and to rip the disk into a backup. I have the files (because I save the ISOs and other files, about 100gigs a BD disk) on a Buffalo Linkstation with a 2TB USB drive plugged in. I needed the space, and I wondered if this setup had enough throughput to stream the HD video.

First test was on my main gaming Win7 machine...VLC played the MKV files just fine...but not the ISO.

My Linux machine would not play anything back, even with VLC.

Meanwhile I had picked up a Dell Optiplex GX280 SFF (small form factor) computer (3Ghz P4), and put in a ATI HD 4550 SFF video card. (has the HDMI out). So I thought I would see if this little machine could play back the BD files.

The answer is yes...although at first I had a lot of trouble...VLC on that machine (winXP) stuttered on I installed Media Player Classic HD (MPC-HD) and that played better but at 100% CPU and still a bit of stutter at times...then I looked at task manager to see what was running...

The person I got the PC from had installed Windows Security Center (or something like that) an all inclusive antivirus, firewall, malware etc blocker...unfortunately it used a ton of processor power any time you did anything else with the I turned it off, and suddenly BD playback was just fine. I uninstalled that, and installed Avast! antivirus (regular windows firewall was still there).

So ok I can play back these files on a windows machine...but was there a better interface?

That brought me back to XBMC. Now they have versions for all the OS platforms and a Live CD version. So I tried out the Live CD.

I had to boot the Optiplex hooked up to the PC monitor and the HDTV and use the ATI software to correctly use the HDTV as output device on windows...but after that it worked fine on windows.

Booting from the Live CD was fairly quick. Once XBMC had booted, I had to go into the settings and put the audio outputs to HDMI...and I had to play with the video rendering option...autodetect did not work on any media playback.

But BD playback was a no go using the Live CD.

So I installed the windows version. Again I had to set the audio output, but some of the other options were different than the Live CD. This version could play back the BD files...but it was choppy.

So I needed to be able to use MPC-HD to play back the BD files...and I needed XBMC to use that program to do the job.

A workaround that is pretty good is this on

Create a file named playercorefactory.xml and place it in your [user]appdata/XBMC directory.
The location depends on what version of Windows you are using, and the location of the "mpc-hc.exe" file also depends on version.

I personally removed the -filename=".*1080p.*" rule...because none of my BD files have that in the title.

It now works pretty well, XBMC starts mpc-hc when it finds the MKV files (BD) and pops back up when playback is over.

Only weird part is, if I stop the BD playback...I have to tell mpc-hc to exit.

So until I find a better option...this setup will be my new HTPC.


p1138w said...
This comment has been removed by the author.
p1138w said...

I would have thought that the 4550 would handle the HD decoding just fine. Did you try turning on hardware decoding in XBMC?

bubba zanetti said...

That is what I would have thought. VLC doesn't do hardware accel (at least on ATI cards). I went though all the render settings on Live CD just to show any playback of any go on the HD.

XBMC on windows used a lot of processor just while sitting at a menu.

I am getting more RAM, that hopefully will improve things. Also apparently Win7 is supposed to have hardware accel built in...I am still thinking about that move.

p1138w said...

So I assume that you did turn on the hardware decode setting in XBMC? In the video settings and in the playback section where it says "Allow hardware Acceleration."
I use an Nvidia 9500GT card and it plays 1080p flawlessly and with low CPU usage with that setting turned on. I don't use VLC or any other media player software inside of XBMC as I find XBMC seems to do the trick all by itself.

bubba zanetti said...

In the Windows version there is no option to turn on hardware decode, or to choose rendering method.
AVI plays well with low CPU.
But funny enough, just XBMC itself maxes out the CPU...

On the Live CD, you can choose rendering method, but no specific option to turn on hardware decode.
Auto Detect doesn't work.
VDPAU doesn't work (I think it is only for NVidia cards)
Advanced shaders (GLSL) doesn't work.
Software works with low CPU on AVI.
Choppy BD MKV rip with CPU0 at 100% and CPU-XBMC 100% (not sure what the second CPU means)
Basic Shaders (ARB) works with low CPU on an AVI file. Choppy BD MKV rip with CPU0 at 100% and CPU-XBMC 100%