Search This Blog

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.

25 comments:

  1. Does the Revo's hdmi cable carry audio?

    ReplyDelete
  2. Yes, it can. There is a setting in XBMC that tells it to use HDMI for both video and audio. When I tried using Hulu Desktop, the sound did not come through the HDMI but that just could be that I missed some setting somewhere. If you run Windows XP that comes bundled, there is a note about setting the Windows drivers to use HDMI for all sound. Since I'm running Linux, I never tested that.

    ReplyDelete
  3. Two questions:
    1) what u think the average life span of revo will be? Is it going to be another $200 in 3 years..

    2)Can you turn on Revo with that remote? If so how long does it take for u to be able to play any media on it from the time you turn it on.

    Thanks.

    ReplyDelete
  4. One more question. Will an External HDD connected to the Revo work like a NAS while the revo is on. Will I be able to transfer files to and from the HDD to my laptop which is in the same network but wirelessly?

    ReplyDelete
  5. RMJ, I can't predict the life span of the device but I would expect it to be useful for years to come. No keyboard, mouse or display to fail so it might even last longer than a laptop. I haven't explored turning on the Revo via the remote but I did notice that the BIOS had some "wake on" settings which might make it possible to do so. As far as the making the Revo share files, it shouldn't be an issue. XBMC doesn't have any file sharing support but you should be able to do it easily from the OS itself. Something like FreeNAS would be an interesting experiment -- you can run it off of a USB key and leave the Revo's hard drive alone.

    ReplyDelete
  6. Thanks Ron for ur quick response. I am torn between a revo kind of setup vs. a cheap old XBOX + XBMC setup.. Still wondering which one I should jump to. Since revo is a standard PC, its not going to upscale your SD content I suppose. Does XBMC do that?

    ReplyDelete
  7. RMJ, I also have XBMC installed on a couple of XBOXs and I think the PC version of the software is better. I can't say for sure if XBMC does upscaling or not but I can say that standard def DVDs look fine on my 42" LCD TV. The primary issue with the XBOX is its limited horsepower. If you play standard DVD ISOs there is no problem. If you try and get it to play H.264 content, it can struggle depending on the encoding settings used. I've used Handbrake to create an H.264 encoding of the current Star Trek movie using its high profile settings and the Revo XBMC played it just fine. FYI, the same file also plays on my XBOX 360 and Gen 3 iTouch. An XBOX classic solution is only about $50 USD but the Revo probably has more uses. I loaded Boxee on the Revo and it I use it to play internet TV shows. You can't do that on the XBOX.

    ReplyDelete
  8. Ron, just bought the Revo and remote and was going to get started. Like you, I was thinking of just going ahead and installing Linux and xbmc rather than installing the live version. As you point out, boxee is then an option as well.

    My question is about the "NVIDIA drivers"? The original article talks about a version of xbmc with the NVIDIA drivers alreay installed? Did you need to do anything with "NVIDIA drivers"?

    Thanks!

    ReplyDelete
  9. Robert, I don't believe I did anything out of the ordinary regrading the video drivers. In the BIOS, I made sure to dedicate as much RAM as possible to be video RAM -- I should probably drop in another 1GB stick of RAM at some point. I also had Xubuntu install the hardware drivers for the video card but all of that is gui driven -- no hand editing of XML needed.

    Good Luck,
    Ron

    ReplyDelete
  10. Ron - good work writing this all info. Thanks.
    I'm thinking about a similar setup (before that I need to decide revo 1600 vs. 3600). I'm looking at 3600 only because it comes with a dual core. Do you have 1080p working smoothly? I know somewhere else on other forum who has boot XBMC version running 1080p smoothly. But since you have an OS and XBMC both, does it leave enough power to run 1080p content? Thanks. qwert1234

    ReplyDelete
  11. qwert1234, my current use case is to play Standard Definition DVDs so I don't think I can answer your question. Although my TV says that everything is coming over at 1080p, I'm not pumping through any hi-def content, such as a Blu Ray movie. To be honest, I'm not sure if CPU or GPU is the primary factor in smooth playback of hi-def content. If you got the bucks, I say go for the dual core.

    ReplyDelete
  12. Ok, thanks Ron. GPU would be primary for video playback if you are using media player that have hardware acceleration enabled and your GPU supports decoding the video.

    ReplyDelete
  13. Conor [Dublin, Ireland]March 18, 2010 at 9:46 AM

    Hi Ron,
    Very useful article. My Revo has just arrived and I'm planning on duplicating your setup.

    I've a few questions:
    1. Can you bind a button on the remote to close XBMC if you wish to return to Xbuntu to browse the web or whatever?
    2. Would it be possible to have a torrent client downloading stuff in Xbuntu while XMBC is playing video, or would that be beyond the Revo's (or Xbuntu's) limits?

    ReplyDelete
  14. Conor, XBMC does have a couple of exit options: shutdown the entire box, exit XBMC or restart the box. I haven't attempted to bind the "exit" function to the remote. I usually just select the correct button and select the "exit" option. I drop out of XBMC once in a while just to apply any updates.

    Regarding downloading torrents, I can't see why the Revo wouldn't be able to handle that but I can't say that I've tried it. The only potential issue I can think of is if the torrent download somehow hogs all of the bandwidth so you can't play your media from your network shares. Most torrent clients I've seen have some sort of bandwidth limiters so I bet you can avoid such an issue.

    ReplyDelete
  15. Great article!

    I was wondering what your experience has been with trying to view Flash content - I've heard performance on Hulu, etc is terrible. True?

    Also, have you tried XBMC? How is it compared to *buntu? Oh, and why not use Mythbuntu?

    ReplyDelete
  16. Ron, I did figure out the NVidia driver stuff. I installed regular Ubuntu then XBMC. Surfing the internet was fine. But XBMC was unbelievably slow. Then I went to the System menus and under the Administration part, there was the "Hardware drivers" selection. It found and installed the NVidia drivers and XBMC was off and running.

    I have a couple of issues: When hooked up to my 24 inch LCD television, the edges are cut off. I did find a zoom feature in XBMC so I can shrink the XBMC but the regular Ubuntu menus are cut off. Also, I got the recommended "AVS Gear HA-IR01SV Infrared Certified MCE VISTA Remote Control" and it doesn't do anything. (It is good for throwing at my daughter's cat.) Lastly, my screen is wavy. Any thoughts?

    ReplyDelete
  17. Samen, I would agree that Flash does not perform well in this environment. Hulu is extremely choppy and pretty much useless.

    Regarding your question about XBMC, I don't really understand what you are asking. I am using XBMC + Xubuntu to create my HT solution. If you are asking me why I don't use Mythbuntu instead Xubuntu + XBMC, my answer would be that I'm not interested in capturing new content, just playing back the stuff that I currently own.

    ReplyDelete
  18. Robert, I know I had to adjust the screen under XBMC to make everything fit just right. I think XBMC calls it Video Calibration. I don't remember if I had to adjust the TV to properly view the Xubuntu desktop or not but it would make sense to look in your TV's menu and try some adjustments.

    Regarding your remote control issues, did you install the lirc package as described in the post? Following those simple steps allowed the remote control to work under XBMC for me.

    ReplyDelete
  19. Is XBMC an application just like Boxee?
    Can the two be run on the same aspire revo r3610?
    The aspire revo I'm looking at purchasing comes with the Linux operating system. Can I load XBMC, use Boxee, and search the internet?

    Thanks
    Joe

    ReplyDelete
  20. XBMC is an application that started life on the XBOX classic but then got ported to Windows, Linux and the Mac. Boxee is a "fork" of the XBMC code meaning that Boxee started life from the XBMC code but the Boxee development team has changed it to suit their needs. I have both installed on my Xubuntu box and they both run fine. I like XBMC to manage the media I own and Boxee to view internet-based media, such as Revision3 - http://revision3.com/. If your Revo comes loaded with Linux then you will be able to use it as a regular PC and will be able to browse the web.

    ReplyDelete
  21. Is it possible to use hdmi output for video but still keep sound on the headphone socket? I don't have hdmi port and I am thinking about hdmi-dvi converter plus speakers from the headphone socket. I have read somewhere that using hdmi disabling sound on the headphones. Can you please confirm?

    ReplyDelete
  22. Bart, I'm sorry but I've never experimented with that configuration. You'll have to look elsewhere for the answer.

    ReplyDelete
  23. Hi Ron
    Great tutorial...as More HDMI ports i use this auto switcher and its worked fine for me here is the link..http://www.amazon.co.uk/Neet%C2%AE-SWITCH-input-output-Switcher/dp/B001DAHS5Q/ref=sr_1_1?ie=UTF8&s=electronics&qid=1270241933&sr=8-1

    ReplyDelete
  24. Ron

    Love the article, use this HDMI switcher to get another port. FYI this site has more options for more ports but this will be the cheapest. I prefer one with a remote.

    http://www.meritline.com/mini-hdmi-switch-3-in-1-out-062---p-33538.aspx

    ReplyDelete
  25. This comment has been removed by a blog administrator.

    ReplyDelete