My AppleTV has served me well over the past two years. I hacked it to enable support for other formats (AVI, etc) and to browse files stored on my file server (as opposed to just ones I bought in iTunes); ATVFiles is useful to that end. But its support for MKV and OGM files (frequently used for anime and now Bluray files) was massively lacking and it just doesn’t have the processing power to decode 720p or 1080p video (unless it was purchased from iTunes), a major limitation with the advent of Bluray titles.
A month or so ago XBox Media Center was made to work on an AppleTV and I started playing around with that. I was always turned off by its default skin but the new one, Media Stream, is very slick and even rivals the AppleTV’s wonderful interface. Above and beyond ATVFiles XBMC supports the concept of a media library; complete with meta-data about all shows and movies in your library. Add all that to the wonderful timing of a fresh version coming out in November and I felt the desire, no the need, to upgrade.
The hardware for the project was easy to pick out aside from the motherboard since I want to go for an integrated graphics chip if I could find one with the power I needed. I also knew I wanted the computer to have a small footprint so I went with a MicroATX setup this time around: a nice Intel Core 2 Duo at the heart of it, a Intel motherboard with HDMI port and a sweet integrated graphics chipset with on-board decoding of popular Bluray codecs, reasonably attractive case, 1 Gig of RAM, Seagate HDD (SSDs just aren’t cheap enough yet), and a Media Center Edition remote. Already reasonably cheap, having a birthday around the time I wanted to build it helped bring the cost down even more. Parts in hand assembly was easy although tight being a MicroATX case and all. Although not perfectly silent like my last media PC (a price I knew I’d pay for using a MicroATX case — those tiny fans bite you in the ass) one can only hear it when everything else in the room is off so I’m happy with the results.
Originally I was going to put Windows XP on it but I ran into an odd bug where XBMC would play back standard files somewhere around one frame every five seconds. Using VLC I had no issues. The XBMC forums confirmed this is a bug but they don’t know what exactly is causing it (in November when I tried XBMC on the gaming box XP I had no issues). Remembering how much of a pain Linux can be to get audio-out over optical working, especially with newer chipsets, I figured I’d see if Vista would work out. I knew going into this Vista was going to be a world of hurt but my options were limited.
Loading Vista and getting XBMC working went without much trouble, but I had to spend a lot of time A) working through Vista making me want to reformat the PC and battle Linux to get audio working and B) screwing with the remote to get it to work right. Two pieces of software helped with this: IR Server Suite and Event Ghost. IR Server Suite works to translate the IR codes sent by the remote to system events and Event Ghost listens in the background for when an event happens (button pressed, system comes back from sleep, etc) and runs commands.
With regards to A Vista seems to not deal with mapped network drives the way I’d expect it to. Whenever I boot up or resume from sleep it would complain it couldn’t reconnect the drive, but as soon as I double-clicked the drive letter it’d open up and be fine. I had to do this specifically through Explorer. Odd. So I had to set Event Ghost to launch (and the promptly close) an Explorer window for that drive whenever the system boots or comes back from sleep.
With regards to B IR Server Suite went a long way to getting everything working perfectly. Just set up the mappings in XBMC’s keymapping.xml file and it all worked. Except for when you resume from sleep. Every couple resumes the remote would stop working (except for the arrows, those worked). Turned out Input Service was crashing (even though I went in and set that service to restart if it crashed) and I had to manually stop and start the service to get it to pick up the remote again. Of course this had to be done before XBMC was launched or else XBMC itself wouldn’t see the remote. So I have Event Ghost set to kill XBMC when the system goes to sleep, and then I have Even Ghost set to run a bat script that restarts the Input Service and then launch XBMC.
To make things sync up nicely (since XBMC can’t monitor a folder for new files and automatically add them to the library) I set XBMC to automatically scan for new content on launch (and because of those Event Ghost settings that is every time I wake the pc on to use it). I’ve also mapped a key on my remote to manually trigger an update incase I need to. I debated having a script running on the file server that would notify the media pc whenever a file was added, but that’d only be ideal if I was going to leave the media pc on all the time, as opposed to making it sleep whenever I’m not using it.
Turned out to be a bit more of a project than I expected on the software configuration side, mainly because I had to move to Vista, but we watched the Bluray version of Serenity in last night. It was beautiful and made the project worth it.
Next Entry
SyntaxHighlighter 2.0 »
Previous Entry
« A Better jQuery Date Picker