Building an all-in-one Home Theater PC

A friend of mine is building himself a nice home theater with a good quality projector, a 112 inches screen and a "high-fidelity" audio system. He has a Blu-ray player but he was interested in moving away from optical discs. He basically wanted a Home Theater PC (HTPC) that would allow him to access and playback files stored on the network or on various storage devices. He asked me for advices as to what he should buy.

Choosing a media center

Commercial offerings

There are many products like the "Apple TV" that does exactly what he wants. However, many of those commercial systems only play a very limited number of file formats. Sure, some of them can be "jailbroken" but it is not something I want to research and even less so support someone with.

Bottom line is if you want to play Blu-ray rips in Mastroka container (.MKV files), you're left with fewer options. There are still some good products out there like "Boxee Box" (which I tested extensively). But then again, I find that commercial HTPC are often poorly customizable (if customizable at all) or locked down in some undesirable way. There is also the legitimate worry that they may stop being updated in the near future leaving you with useless hardware.

XBMC or the "do it yourself" crowd

Now, well before all the cool kids went to Best Buy and bought themselves Youtube-connected MKV playing devices for their TV, there was XBMC. Geeks and hackers have been enjoying this amazing open-source project for almost 10 years now. It presents none of the drawbacks mentionned above. It is actively maintained by a strong community and plays everything you throw at it (except maybe for original Blu-rays). There are many gorgeous interfaces and software add-ons for it and there are constantly more on the way. It is such a solid foundation that "Boxee Box" is actually based on it. Being myself a very happy user for several years now, this is the solution I suggested him to opt for.

XBMC provides a rich user interface by automatically downloading metadata, posters, fanarts and subtitles for your TV shows and movies.

Going for an all-in-one HTPC

As for file storage, I suggested him to buy (or build) a network-attached storage (NAS). However, he wasn't so thrilled at the prospect of shelling out over 500$ for an empty 6 drives slot NAS. So to save on cost, I offered him to put together a box with everything in it: XBMC as the media center AND a bunch of hard drive slots to go with it.

In summary, I needed to build an HTPC that:

  • Runs XBMC
  • Decodes high bit-rate 1080p files
  • Support audio bitstreaming (a must!)
  • Can be home to 6 hard drives
  • Is ideally 19-inch wide, black and good-looking

The build


XBMC can run on very minimalist configurations. As long as you have a video card that take cares of decoding video files, you can get away with a very low-power computer1. For this particular build, I just had to make sure the motherboard had at least 6 SATA ports but for the rest, I would have been fine with anything relatively recent.

Components for the build

I ended up getting a small SSD, 8GB of memory and an Intel Core i3 processor. This is probably a bit overkill but considering the scale of my friend's project, it didn't seem like much. The system runs very smoothly and it could make for a decent secondary PC if needed.

Video card

This should be chosen wisely. First, the card must provide hardware-accelerated video decoding that XBMC supports. Fortunately, nowadays, this requirement is fulfilled by most video cards. Second, to ensure smooth playback, the video card must be able to match its refresh rate to the source frame rate of videos2. I got a bit worried about this second requirement because there has been numerous reports that the video card built into Sandy Bridge CPUs lack support for the prevalent 23.976 Hz refresh rate. This is why I decided to buy an Nvidia GT 430 card since I knew from good source it should work. I'm also happy to confirm it supports audio bitstreaming and it works right out of the box with Openelec (more on that below). So if you want to save yourself potential headaches, just add a 50$ GT 430 video card to your shopping cart and be done with it.

The case

Since I heard great things about Silverstone, I decided to give their SST-LC10B-E-USB3.0 model a try. It supports up to seven 3.5 inches drives, full ATX motherboard and it has a nice brushed aluminium finish on the front. It has the proper look go along other "high-fidelity" audio equipment typically found in home theaters.

Picture of Silverstone SST-LC10B-E-USB3.0
The Silverstone SST-LC10B-E-USB3.0 below a CD player and stero amplifier. It has the same width as typical audio components so it should fit nicely in its future home.

Overall, I was very pleased with the case and I would strongly recommend it to anyone building an all-in-one HTPC. If you plan on buying this case, note that without an optical drive, there is no easy way of covering the disc loading slot on the front. You will have to be crafty and somehow glue the provided aluminium piece on the case. Also, once you fill the case with hard drives, you might need to use right-angled SATA connectors so make sure you have some!

Inside view of Silverstone SST-LC10B-E-USB3.0
Inside view of the completed build with 3 x 2TB hard drives


This step used to be a bit more complicated in the past but thanks to Openelec things got a lot easier. Openelec is a small Linux distribution built from scratch that is designed to make your system boot as fast as possible directly into XBMC. Potential users don't need to know anything about Linux to use it. They only need to know how to navigate XBMC using a remote control of their choice (my friend is using his iPad). As I mentionned previously, Openelec supported everything out of the box so the whole installation took 15 minutes. If you are putting together a dedicated XBMC computer, be sure to check out this awesome project.

  1. A low-wattage Intel Atom CPU or even a Rasperbby Pi can be enough!

  2. This is very important otherwise you will get stuttering playback.

  • htpc
  • xbmc
  • openelec
  • hardware