Xbox vs Raspberry Pi - Fight!As an early adopter of all things XBMC (by necessity), I have occasionally found myself with a fair amount of old equipment that I’d love to repurpose, but don’t know how. Old component video cables and other sundries just end up in my huge box of cords. Remotes to old dvd players randomly appear and disappear. Power cables that connect to devices that I didn’t know I owned suddenly crop up as if by magic.

Most frustrating of all, however, is this massive, half ton television I bought about 10 years ago, right before HD really started catching on. By all accounts, it was a great TV for its time. It’s huge. It was absolutely perfect for use with the old modded Xbox. And now, as the old Xbox hits its last legs and it’s growing more and more difficult and frustrating to keep the Xbox library of SD content up-to-date, I find myself uncertain what to do with the old lady.

The problem is, I hate to get rid of the TV. I still have a library of SD content and old Xbox games that I’d like to hang on to (plus, it’s heavy and easier to just leave where it is), but at the same time, if I’m going to keep this TV, I’d like it to be able to access all the modern shows and movies I’ve got in my library without having to deal with any irritating transcoding. I’m not a user of Plex, and even if I were, Plex doesn’t really play very nicely with XBMC4XBOX.

On top of that, it’s literally impossible to build any kind of reasonable (i.e. inexpensive) HTPC for this SDTV, because the TV only accepts RCA and S-Video inputs, and inexpensive HTPCs only output to HDMI and VGA (and sometimes DVI). I could buy an adapter, but those things run ridiculously expensive, making them fairly worthless for the simple goal of not throwing away an old TV.

The SD Hardware Solution

All of which brings us to the Raspberry Pi. And more specifically, the composite (RCA) video output that comes built into the Pi. Suddenly, I have an XBMC box that costs 35 bucks and can play back video that the Xbox 1 couldn’t even dream of touching.

Getting the Raspberry Pi for this project, I felt like I was going in fairly blind. There’s not a lot of documentation on whether and how well XBMC works using the composite out. I could very well be blowing a decent amount of money on a paperweight. On the other hand, I’ve got various family members who could benefit from a cheap HDMI-equipped HTPC, so it was never going to be a full loss.

Another one of the XBMC team members, Ned Scott, ordered six Raspberry Pis, because shipping was quicker or something. Since his were expected to come in possibly months before I could get an individual one, I took him up on an offer to just buy one from him.

After a week in the mail, I received my Raspberry Pi. My first discovery was the lack of an on/off switch. The simple solution was to get a remote control electrical socket switch. With this I could quickly and easily turn the power source of my Pi on and off. It’s possible that shutting off the Pi by removing the power source, rather than allow it to shut itself off is bad for the Pi or the SD card where the operating system sits. However, I’m putting myself squarely in the camp of the do-not-care. It’s fast and effective, and the hardware is so cheap as to be easily replaceable.

Next, absurdly enough, I needed to buy a composite cable. It turns out, every device I had connected to that TV didn’t use a standard cable. It used a special cable with a unique port on the device side and a standard composite cable on the TV end. I needed both ends to be standard. Fortunately, these things are dirt cheap at your local brick and mortar store, or online.

While I didn’t have an RCA cable, I did have a stereo y-adapter to connect the Pi to my TV’s audio. So no need to buy that.

Finally, I needed some means of remote control for after I’d completed installation. One of the really cool things about the Raspberry Pi is its built in HDMI-CEC compatibility thanks to Pulse-Eight and their libCEC. Hooking it up to most modern TVs via HDMI allows you to actually control the Pi using the TV’s remote control through the HDMI cable (aka magic). Unfortunately, since I wasn’t using HDMI, I needed another solution.

Enter flirc. Flirc, quite simply, is awesome. It’s just a tiny USB dongle that you set up using your standard Windows/OSX/Linux box to interpret key presses from literally any IR remote control as standard keyboard presses. No need to worry about remote control software or specialty remotes. You can then move the dongle from device to device, and it will remember all the key presses you taught it. I managed to take a remote control from an old DVD player that I wasn’t using and assign all the important XBMC keys to it in a matter of moments.*

*One quick tip though. The version of the software I was using 0.96 has an XBMC specific section, but doesn’t have a button to access the hypercritical context menu. My suggestion is to map out all the keys in the XBMC specific section, then switch to the Full Keyboard section and map a remaining key to ‘c’ so that you are covered.

For an idea of how this works, check out the video below where a user pairs the stop button on his remote to the keyboard letter ‘x’ (the keyboard letter used to stop a video in XBMC).

Finally, the Raspberry Pi was going to need local network access to reach my media shared folders. For me this was a complete non-issue. I already had a LAN cable hiding behind the tv for these exact purposes. Those of you without are going to need wifi support and honestly, wifi support via a usb dongle sounds like a real headache. Unless you are relatively comfortable with following instructions involving ssh’ing, I’d suggest just getting a wifi gaming adapter. These things act like a regular wifi usb dongle, but plug into your Raspberry Pi’s lan port after you’ve followed the direction to get them set up. They’re a bit of an expense, but so astoundingly useful that you could very well be using the adapter well after the Raspberry Pi has been replaced by the next great thing.

Getting the Software Going

I installed XBMC onto the Raspberry Pi. There are a number of different guides found under the Raspberry Pi download link. To install XBMC onto a Raspberry Pi, you have to start by formatting and setting up an SD card on your PC. Because I was using a Macbook Pro, I ended up using Raspbmc, mostly because I was having difficulty following the OpenELEC directions, which appeared more geared towards Windows users. For Windows users, I imagine both should work equally well. I’m not very familiar with Xbian, so I can’t say one way or other about it.

With all that said, installing XBMC was a breeze. I did all the stuff to the SD card on my laptop. Plugged the card into my LAN-connected Raspberry Pi and turned it on. Because there were still several steps left in setup, I plugged an old keyboard into the Pi to deal with the initial work. And 20 minutes later or so, XBMC was up and running.

Initial Impressions

The Raspberry Pi is SLOW. So… so… slow. I’ve got my mom set up with a NVIDIA ION box, which I previously thought was pretty bad, but that’s nothing compared to the Pi. At some point I read a thing that said the Pi’s CPU is roughly the equivalent of the CPU of the Xbox 1, but at half the clock speed. I don’t have that link, and I’m honestly not sure if it’s in any way true, but I’d be willing to believe it.

Navigation of a library is relatively fast, but the initial scanning of that library? Oh my gosh, was it ever terrible. If you have a fairly extensive collection of movies and TV shows, be prepared to wait a good hour for the scan to finish.

I have a feeling a great deal of that problem will be resolved with XBMC 13, if only because I imagine a fair amount of work to better integrate UPnP serving will have been accomplished by then. In an ideal world, my HTPC with its far more powerful CPU running XBMC (or even better, an XBMC Server service) would handle all the scanning behind the scenes. Then the XBMC on Raspberry Pi would automatically have a library hosted for it over UPnP, relieving the Pi’s CPU of heavy strain. That sort of works now, but XBMC’s UPnP implementation still isn’t nearly where it needs to be. For instance, playing a video doesn’t actually mark that video as watched and if you stop a video midway through, you won’t automatically be sent back to that point when you come back to the video. Additionally, once you’ve added the library, the stock skin Confluence currently forces you to access it through the Files folder. Movies and TV Shows won’t be listed as main sections on the Home screen, like they would if you scanned the library locally.

For a video of UPnP as it exists on XBMC right now, check:

With luck, that will all be significantly better by version 13. For now though, the Raspberry Pi remains slow.

The other point worth mentioning is that XBMC for Raspberry Pi doesn’t come with MPEG-2 or VC-1 hardware video decoding. XBMC will still attempt to decode the video in software, but the Pi CPU will definitely choke on any high bitrate video in either of these formats. If all of your video comes in MKVs using the h264 codec, you’re fine. If not, you may want to consider either converting your video or purchasing a hardware decoder license from the Raspberry Pi Foundation.

With those caveats out of the way, my impression of the Raspberry Pi is simple. It blows the pants off XBMC4XBOX. There are still some things the Xbox can do better (playing Xbox games, for example), but for the simple purpose of playing back an HD video library, the Raspberry Pi is absolutely fantastic.

If you are going to install an XBMC box for an HDTV, I probably wouldn’t recommend the Raspberry Pi.  It’s great for hacking and probably still more awesome than a Roku,* but right now I’d easily recommend something like the Pivos XIOS or another more powerful Android box, if you’re looking for a set top box.

*Insert biased pro-XBMC stance here.

But if you’re like me and you want to repurpose an old SDTV, there’s seriously no better way to go than the Raspberry Pi.

  • Mark Lane

    Hi, in case you weren’t aware you can purchase licenses for MPEG-2 and VC-1 hardware decoding ->

    • Mark Lane

      Oops you already mentioned that! Must be going blind

  • nite_man

    Thanks for sharing your experience with XBMC and RaspberryPI. I also bought it and played a bit. I tried OpenELEC and Raspbmc. OpenELEC took just 80 MB in SD card! More or less I like RaspberryPI. The only one sing I don’t like is a video twitching when OSD is called.

  • Kevin

    I have to agree with the gaming adapter suggestion. I’ve had one for several years and its always coming in handy around the house.

  • spazoid

    Overclocking and installing on a USB stick does a lot of good for the little Pi. For me and the wife it took it from “okay, I guess we can watch 1080p at least” to “hot damn, let me get another one for the bedroom!”..

    • Tommy Gilchrist

       I’ll second that. Much better performance if you install on a USB stick. I’ve also read that turning off the option to download actor thumbnails speeds up scanning considerably but I haven’t done any side-by-side comparisons myself.

      The downside is that it costs you one of the two onboard USB ports :-(

      Personally I’ve found RaspBMC easier to install on a USB drive than OpenElec, specifically OpenElec’s update process doesn’t work when installed on USB

  • Steviehyper

    The iPhone xbmc official app is all you need. Mine wakes on LAN using it and switches off. And because I plug into an av amp it means I don’t even have to turn on the tv to play music

  • Surefyre

    I recently discovered Yatse which is an excellent XBMC remote for Android (maybe apple, no idea) phones. If you’re streaming video over the network from XBMC then you can use Yatse across the same network too. Binned the old ‘Official XBMC Remote’ app now!

  • Ants0 Anthony

    Mtb!!!!!!! Hell yeah dude!

  • Capslock118

    I have to say, the pi and xbmc is perfect for my 92″ 1080p projector with 5.1 dts sound system. So the initial scanning is slow? That happens one time. Maybe its faster for me because I am running my media off another pi as an NFS host. And using a remote with it is just splendid. Such a wonderful low cost media solution.

  • Andrew Oakley

    I use the Android official XMBC app for remote control, and it Just Works.

    RaspBMC is great for SD video in h.264 and xvid format. We have an old widescreen FST CRT sitting in the lounge, plus a Raspberry Pi connected by Homeplug ethernet to a NAS/server full of xvids, it keeps the children – and me – happy for hours on end on a rainy day. I particularly like the “Play from here” option where you can instantly queue up a whole directory’s worth of cartoons.

    The BBC iPlayer plugin works, too. As someone with a British IP address, I can play back any BBC content from the last week or so, for free. A bit of a bugger to navigate, but it works.

    The Raspberry Pi is very cheap and, compared to even an Atom netbook, very slow. But so long as you’re prepared to wait a couple of seconds between each keypress, it’s perfectly fine, especially for twenty-five quid.

    Just for God’s sake don’t try to browse Facebook on it. You can almost hear it screaming in pain.

  • Me

    Wi-fi.  Actually the wi-fi dongle is easy.  5 GBP.  Works without having to do anything other than configure the SSID settings – at least it does with openelec

  • Ty Margheim

    OpenELEC (an xbmc varient) for the Pi works great.  I have it hooked up to my Vizio HDTV and have had zero problems with it.  It’s replaced my first gen Apple TV as my XBMC device.

    I can use my TV remote to control the Pi through HDMI CEC  or the Android/iOS XBMC remote.

    1080p x264 video plays flawlessly and looks beautiful.

  • jacksmind


    What???  Rpi works fine for HD.  I think you didn’t work hard enough, because the RPi can take 1080p easy (at 50% cpu load)
    Things you can try to make it work better so you can rewrite this article and not spread misinformation:

    Wifi-g doesn not work for hd -> wifi-n works
    if slow over wifi -> move to wired
    if using samba -> move to nfs
    if using wifi -> move to wired
    if using wired -> move to attached drive
    if using mpeg2/ac3 (recorded tv) -> encode to h264/aac (assuming network is bottleneck, though h264 really seems to work better)
    if using raspbian -> move to raspbmc (with overclocking defaults)

    I can personally attest that the Rpi can handle the ‘killa sampla’ fine over wired network:

    The Rpi is DEFINITELY 100% capbable of easily streaming HD content:…1193.5182.0.5382.…0.0…1ac.1.-t_VWw8cAj4

    • NathanBetzen

      If it wasn’t clear, I wanted the Pi BECAUSE it is so good at decoding HD. That was the point of the article. I needed a device that could decode HD but output to an SD TV. 

  • Lee Gibson

    The problem could be the xmbc release, I found openelec to be much more responsive (as stated elsewhere) when I tried them out on the 256 version and when I got the 512mb version it ran openelec even faster.

  • twelve dogs

    i didn’t even notice a difference between sd and hd movies, my pi handles mkv files better than my old 2ghz dual core media center

  • Will Jagels

    Raspbmc has been the absolute worst, in my experience, of all the xbmc distros for the rpi.  Xbian is by far the snappiest and with a little tech know how, it is a breeze to setup.  To address how this guy complains about upnp, mysql is much better for maintaining a library.  Simply have one main xbmc machine, which you can leave on.  The mysql setup is not overly complicated and it works great.  Not having much disk use on the rpi helps performance and makes it work more like it was designed, as a ‘cloud’ device. 

  • Shared Sources

    If scanning is slow and you use another computer for xbmc, then share sources…