Search This Blog

Showing posts with label XBMC. Show all posts
Showing posts with label XBMC. Show all posts

Monday, December 28, 2009

Can I create an inexpensive home theater solution?

Over the past 24 months I've been looking for a way of organizing the family DVD collection.  Two kids and 20 years of marriage have contributed to what seems to be an ever growing DVD collection.  Every birthday or Christmas brings a new disc into the house. A DVD collection can get cumbersome pretty quick.  The volume of the physical media is one issue.  We've tried book cases as well as binders in an attempt to organize things but both solutions have one fatal flaw: The Couch Factor.  When I'm in the mood to watch Office Space I don't want to get off the couch and hunt around for the disc just so I can pop it into a player.  In a word, physical media is a pain.

Luckily, hard drives are becoming cheaper each day.  I recently picked up a 1TB external drive for $65 at Target.  Over time I've ripped our movie collection into a form that can be played over our home network.  My initial attempt was to rip the movies into an ISO file using AnyDVD for play using a Ziova CS505.  The player itself was good but the user interface was terrible.  Despite the fact is could play DVD ISOs, FLAC audio and Xvid, finding the file you wanted to play was painful.    That system showed me the potential, however,  for playing my media from anywhere in the house -- without getting off of the couch.

Months later, my son got an Xbox 360 which could play media files.  It suffered, however, from the same drawback that the Ziova did -- terrible user interface.  Much like the CS505, all it did was provide you a way of traversing the directory structure until you could click on the file you wanted to play.  Not a very friendly experience.

Fast forward a few more  months.  A co-worker turned me onto a method for modifying a classic Xbox so that it could run some media software: XBMC.  I had an Xbox lying round dying from neglect -- it got replaced by the Xbox 360 -- so I had nothing to lose.  In short, XBMC is a great solution.  Not only could it play my DVD ISOs and Xvid files, it could play lots of audio formats as well as display photos. The best part, however, was its ability to go out to the internet and find meta-data about the files.  XBMC allowed my to peruse my collection by title, rating, year, genre -- you name it.  I was in digital Nirvana.  Fast forward a few more months and I started to see warts on my beloved Xbox/XBMC solution.  DVD ISOs are fairly large, ranging anywhere from 2GB to 7GB depending on the movie.  I didn't have that kinds of drive space to spare.  I do have a 3TB NAS to store family photos, movies and any other data that can't be recreated but it wasn't near enough to store every movie we had.  Eventually, I discovered HandBrake, which is an excellent tool for transcoding video between formats, and experimented with transcoding the raw DVD ISOs into something smaller.  The ideal format to use would be H.264 because that is Apple iTouch's native video format and is becoming increasingly wide spread.  Unfortunately,  the classic Xbox is essentially a Pentium 3 and doesn't have the horsepower to properly decode H.264.  Not sure exactly what I should do, I decided to do nothing hoping the Moore's law would help things.  Thankfully, it did.

Fast forward to present day.  The folks over at LifeHacker posted an article titled Build a Silent, Standalone XBMC Media Center on The Cheap.   I followed its advice and purchased the following hardware for $240 USD:

The essence of the article is  to take a nettop box and run XMBC on it, routing everything thing through HDMI to your hi-def television.  Seemed like a good Christmas day project.

The AR1600 is an Atom based processor with dual cores and 1GB of memory.  It comes pre-installed with Windows XP and some Acer bloatware.  Wanting to squeeze out as much computing power as possible, I imaged the drive and proceeded to install version 9.10 of Xubuntu, code named Karmic Koala.  Xubuntu is a variant of Ubuntu Linux targeted for lower end machines -- like ones with only 1 GB of RAM.   The install went off without a hitch and I activated the native Nvidia driver to give the video sub-system a little boost.  Using the directions at the XBMC site, I was easily able to install XBMC 9.11, code named Camelot.

Getting the  remote control, however, took a bit more digging.  As it turns out, you have to pull up Synaptic and install the lirc package.  At the end of the install, it will bring up a selection dialog where you can select a remote control and a transmitter.  For the remote control, tell it is a Microsoft Windows MCE controller and select None for the transmitter. That should be all you need to do in order to navigate XBMC via your remote control.

The one final piece to the puzzle was how to make this into a turnkey system: turn the power on and the system automatically launches XBMC.  The XBMC directions tell you exactly how to do that.  It walks you through enabling automatic login into the system and how to select XBMC from the session menu.  Unfortunately, the session menu did not have the XBMC selection as the instructions indicated.  I'm guessing that this is because we're running Xubuntu, which doesn't use Gnome as its window manager using the lighterweight Xfce instead.  To solve this problem, I simply copied /usr/share/applications/xbmc.desktop to /etc/xdg/autostart/.  This causes XBMC to be started right after you automatically log into the system.  I got the idea from this blog post.

Connect the nettop to your high def tv via an HDMI cable and you are good to go.  I've got a enough computing power that I'm free to use whatever codecs I wish to store the movies as.  My current preference is to use the high profile H.264 selection in HandBrake.  This setting creates a video file that is playable on XBMC, Xbox 360 and iPod iTouch.  I would speculate that it would work on a PS3 as well, but I do not own one and cannot say for certain.  I'm hoping that this will be the solution I use for years to come.  I plan on sticking another stick of RAM into the unit and bring it up to 2GB, which should help performance a bit.  I still have one final problem to solve, however.  My TV is a couple years old and only has two HDMI ports.  As you probably have guessed, both ports are currently in use: one for the Comcast box and one for the Xbox 360.  I've got to do a little research to see if there is a way get more ports into the tv, such as something similar to a USB hub.  If you know of something, please drop me note.