Thursday, January 6, 2011

TV Box Update

I was trying to decide if I should get a set top box or make my own home theater PC.  Here's the list of things I want to do, in decreasing priority order:
  • browse and stream videos and music I've downloaded onto a computer on my TV
  • browse and stream videos from a networked file share on my TV
  • watch Netflix Instant and Hulu
  • watch the occasional youtube video
  • use a remote-like interface to do this, not a keyboard and mouse
I don't care about TV capture or DVR capabilities, and I don't really want to browse the internet much on my TV.   I have been evaluating all the options out there but not paying a lot of attention to little technical details like what inputs/outputs are available or how much processing power a box has.  Mostly just features.

I settled on getting a dedicated HTPC and running Boxee, and like an idiot, I tried to save money doing it.  I am going to describe my experience so you can avoid my pain.

The pros of a set top box, like Roku, Boxee, Popcorn Hour, WDTV, or Google TV are that they're fairly easy to set up, and they do what they're supposed to do pretty well.  If you just want to watch Netflix Instant on your TV instead of your laptop, I'd go with Roku.  If you are already a gamer, then the PS3 and Xbox come with a lot of nice features as well.

The biggest limitation is flexibility.  The streamers (like Roku) tout a variety of "apps" which basically means arcane forms of web content you probably don't want to waste your time on.  The major ones people care about are Netflix Instant, Hulu, and Amazon VOD.  These get you pretty far, but don't get you everything.  The streamers are not designed to play content off your local network (aka files you've ripped or bittorrented), and though some of them have hacked in ways to do so, I don't want to deal with that.  There are issues with codecs and installing software on your computer which contains the content which sound annoying.  Things like WDTV only play content off local drives, and do it well, but do nothing to solve the problem of moving internet-TV to your TV.

Unfortunately, I don't know what GoogleTV really does.  The features page doesn't say anything about local content.

Apple TV, obviously, locks you into Apple's world, and it's underpowered.  You can theoretically play any local content, but only if you go through the hassle of converting it (using something like Handbrake).  If you mostly live in Apple's world, this is absolutely the choice I'd recommend.  It's $99, Youtube and Netflix Instant work.  If you use iPhones and iPads there will be nice integration.  And who knows, maybe Apple will reach an agreement with Hulu in the future, since there is an app for Hulu Plus in the app store.  Don't hold your breath on Amazon VOD, but of course you have the iTunes store.

The Boxee box sounds like the closest thing to what I'd want to use, but based on the CrunchGear and Engadget reviews,  it's still rough around the edges, and I'd have to have faith that they'd iron out the issues.  Also, I couldn't justify buying the box when I could get an actual fully powered machine which can do anything for a similar price and just run Boxee on that (oh, how naive I was).  In addition, I worry about Boxee cutting off content.  They have to reach agreements with Netflix and Hulu in order to show that content in their software, and because they control the box, I'm subject to that.  With my own system, I can just run a web browser and do it outside of the media software.  Agreements could be reached or cancelled on a whim.  They're unreliable.

There are downsides to getting an HTPC, and interestingly enough many of them are psychological.  There's a lot of choices to be made, and just having options causes me stress.  I have to evaluate all the specs and decide which features I want.  I have to evaluate, buy, and connect my own remote.  There's a lot of temptation to buy a TV tuner card and an antenna, set up Mythbuntu or other DVR software, and cut out my cable provider entirely, even though this is something I'm pretty sure would cause me a lot of headaches.  Probably the cheapest way to get an HTPC is to buy the parts and assemble it yourself, which gives a combinatorial explosion of choices.

So, I went the route that involved purchasing the least amount of stuff.  I found an abandoned case and parts around the lab, put them together, and installed Ubuntu, Boxee, Hulu Desktop, and Rhythmbox.  I haven't done the work to see if I can make Netflix Instant work (it might with Wine or Moonlight).  Boxee has this really cool feature where you can hook up twitter and facebook accounts, and it shows you a feed of all the videos your friends are sharing on those networks.  I really really like this, because usually when I'm browsing twitter or fb I'm on my phone or I don't feel like watching videos, so I miss a lot of content.  It also has a bookmarklet you can use in your browser to bookmark videos which get queued up in Boxee for when you're back in front of it later.

Lifehacker has great guides on how to set up an HTPC using hardware that costs < $250, with either Boxee or XBMC.  Lifehacker also has some guides on automatically getting shows (for XBMC, but it should work for Boxee) for what isn't available through the usual Boxee interface.

Ok, so I have managed to successfully create a box without spending any money. Instead I spent like a month of my time.  Go warped Indian value system.

This might save someone pain -- Google keywords here -- nvidia boxee can't play local video choppy video fullscreen full screen hulu flash ubuntu maverick osx remote desktop.  End keywords.

First off, I had an on-board video card.  Boxee was slow.  Really slow.  And I couldn't really watch videos full screen.  Hulu desktop and watching stuff in Chrome, however, was fine.  I have concluded that Boxee uses a shit ton of CPU for its fancy application graphics.

Also, flash was warped.  I downloaded Flash Square 10.2 (64bit) and copied that over to the appropriate Boxee directory.  That fixed flash, and I could watch Comedy Central.  I still can't watch ABC Family (what?  leave me alone.  there are some good shows) but Fancast works too, and now even Hulu if you follow these instructions to fake your user agent.  That keeps you in Boxee's world, but Hulu Desktop is quite nice too.  NBC seems ok but freezes a lot.

I also installed a new video card.  That involved adding a whole bunch of drivers, as well --

sudo apt-cache search nvidia

and see what's what.  I think I added jockey-gtk and nvidia-current

There were a bunch of tricky things where I couldn't play local .avi files unless I turned off weird things like Media->Advanced->Enable hardware assisted decoding when possible and set Render Method to Software.  Then I installed libvdpau1, and reverted those settings.  search for that too.

You have to restart to let the drivers take over hardware support, and let nvidia write an xorg.conf file.  Once I did that, Boxee got *much* snappier, probably because there was CPU left over for it to waste rendering its pretty buttons.

What is really nice is playing all my music through this server, and by extension, through my fancy speakers.  Boxee has a few android apps for a remote, which I haven't used too much, but I found that someone wrote a server for Rhythmbox so that you can use the android banshee remote app.  It is annoying, however, because you have to manually sync a db file of your music metadata to your phone in order to do more than play, pause, next, previous.  Anyway I don't even know why I'm using Rhythmbox.  I need a decent music app for Ubuntu.

In Ubuntu, I enabled remote desktop and turned off the password to login.  I use ChickenVNC on my mac laptop to VNC into display :0 and control the mouse and keyboard.  All of this took a lot of futzing, and I don't even remember all the details.  But now I actually feel comfortable killing my Comcast cable.