The Only Raspberry Pi XBMC Tutorial You Will Ever Need

Posted By

Aug 18th, 2013
The Only Raspberry Pi XBMC Tutorial You Will Ever Need

Raspberry Pi is an amazing little computer that can be used as a complete XBMC media center solution with the right software and accessories. While just a bit slower than the Apple TV 2, it can run XBMC media center and provide output in 1080p H.264 video, all for $35.

In this complete and up-to-date tutorial, you will learn how to build a lightweight HTPC front-end by installing and configuring a minimal Raspberry Pi XBMC distribution called Raspbmc. You will also learn how to optimize Raspbmc to run significantly faster for better user experience.

There is also an OpenElec distribution available, and I have covered the more advanced OpenELEC installation steps in this guide.

*** This guide has been updated on August 18th, 2013 to include the latest Raspberry Pi performance tips and tricks. ***

To complete this tutorial, you will need:

The total price for the computer is about $75, plus $23 for the remote control (Flirc), for a total of $98. However, you may have most of the required accessories at home already.

Get the Raspberry Pi

The Raspberry Pi (RPi) is a tiny computer that plugs into your TV with a HDMI cable. It decodes 1080p H.264 HD video smoothly, and the XBMC user interface is quite responsive as long as you use a light weight skin.

You can also unlock MPEG-2 and VC-1 decoding by purchasing a license from the foundation’s online store.

You can buy the Raspberry Pi through official distributors Premier Farnell/Element 14 or RS Components.

Get or build a case

You can buy a case for the board from an online store, such as RS Components, but due to high demand there can be a long delivery time.

Alternatively, you can build a case yourself. For example, in the time it took for the official case that I ordered to arrive, I was able to build a case from LEGO bricks with my kids.

Building your own case can add more fun to this project, so I’d recommend you try this as well. If you build a case from LEGOs, just remember that the base size is 13 bricks by 9 bricks.

Get a supported SD card, USB stick, power adapter and remote control

Supported SD cards and USB sticks

Please note that many users report issues with various memory cards, so make sure to get a supported SD card. I tested 3 cards before I found one that works properly with Raspbmc. The card I am using successfully is the Transcend 32GB SDHC Class 10 (TS32GSDHC10).

It is also strongly recommended to use a USB memory stick as the Raspbmc will run a lot quicker when running the XBMC off the USB stick. Please do not use a slow USB stick, but get a fast USB 3.0 such as Transcend Jetflash 700 that I am using with my Raspbmc.

Even when the RPi has only USB 2.0, using a USB 3.0 stick with 2.0 sockets will give much better read times.

Supported power adapters

The RasPi does not come with a power adapter, so you will also need to get a supported power adapter. I am using mobile phone’s micro USB charger, which seems to work fine.

Supported input devices

FlircI tested this computer with the Microsoft Arc keyboard, Motorola NYXboard USB remote control and Flirc USB IR receiver. The Microsoft Arc keyboard worked, but it had some incompatibility issues as it often generated several key inputs when a key was pressed once.

Motorola NYXboard remote control worked quite well out of the box, but it seems that it is not available anymore at Pulse Eight’s website.

Therefore, the most cost efficient and working solution is the Flirc (get it here). Flirc learns any remote control, so you can use your old IR remote control and map it with the Flirc using a configuration application on Windows and Mac OSX.

After you have mapped the keys with the configuration application, you can plug the Flirc into Raspberry Pi and start controlling the XBMC.

Download and launch the Raspbmc installer


The Raspbmc distribution is created and maintained by Sam Nazarko and you can download the latest version here. I will use the Windows installer in this tutorial.

Before launching the application, plug-in the SD card reader and unplug any other USB storage devices to make sure you will not format an incorrect drive by accident.

Now, launch the Raspbmc installer application and select the SD card reader from the devices list. As mentioned earlier, it is recommended to use a USB stick as a storage partition on the Raspberry Pi, so tick the box on “Install Raspbmc to a USB drive”.

After clicking the “Install” button, it will take less than a minute while the installer downloads and restores the image to the SD card.

Insert the SD card and USB stick to Raspberry Pi

After plugging in the memory card, USB stick, USB keyboard or remote control, Ethernet cable and power adapter, the computer will boot up and the installer program will run for about 15-20 minutes.

The Raspbmc will boot up the computer once the installer script is ready.

Congratulations, now you have Raspberry Pi XBMC ready to use.

Install MPEG-2 and VC1 video codecs

In order to play MPEG-2 and VC1 video files, you will need to purchase codec licenses from the Raspberry Pi foundation.

Install the codecs by following these steps:

  • Purchase MPEG-2 and VC1 codec license keys
  • You will receive the license key from your email within 72 hours
  • In Raspbmc, go to Programs > Raspbmc Settings > System Configuration
  • Enter the license key from your email to MPEG-2 and/or VC1 codec under the Advanced system settings
  • Reboot the system

Add Hulu, Netflix and other premium channels

PlayOn_serviceI think this online video streaming service is too cool to miss if you want to watch Hulu, Netflix, Amazon VOD, HBO Go and other premium content channels on your Raspberry Pi.

In order to watch premium channels on the RPi, you will need to install a commercial software called PlayOn Media Server on your Windows-based PC that allows you to stream premium content channels into XBMC running on any operating system.

The PlayOn Media Server costs about $45 (one-time fee), but according to my experience it is definitely worth it.


Just buy and download the PlayOn here and install it to your Windows-based computer. In order to register your copy, open PlayOn Settings (Go to Start / All Programs / PlayOn / PlayOn Settings) and enter the license information on the Registration tab.

Next, go to Videos menu in the XBMC. Select Files > Add Videos… > Browse > UPnP Devices > PlayOn (your computer name) and select OK.

Now, you are ready to browse the large collection of premium content channels on your Raspberry Pi. Continue reading more advanced instructions here, if you want to seamlessly integrate Netflix and Hulu into XBMC running on Raspberry Pi.

Performance tips

Install Raspbmc to a USB drive

If you have not already installed the Raspbmc on the USB drive, you should definitely get a fast USB 3.0 stick such as Transcend Jetflash 700 and install XBMC on it. You will get much quicker menus and fast fan arts.

Get a faster memory card

Please note that many SD cards are unsupported by the Raspberry Pi, so be sure to get one that is on the list of supported cards such as the Transcend 32GB Class 10 (TS32GSDHC10).

Change resolution to 720p

If you don’t watch 1080p videos, you should change the resolution to 720p as it will make the system and menus a bit faster.

Go to “Settings > System > Video Output > Resolution” to change the resolution.

Change the default skin to Quartz

Confluence skin works fine, but you can improve the responsiveness of the system by using even more lightweight skin. Quartz skin is very responsive skin, so I would recommend installing it.

I have been using the Quartz skin with my jail broken Apple TV 2 and it is a really fast and nice looking skin.

Disable thumbnail extraction

By default, XBMC will extract thumbnails from videos that have no thumbnail in the library. As this consumes quite a lot of CPU performance, you should disable this feature to speed up navigation in the library.

Go to Settings menu and select Video > File lists > disable “Extract thumbnail and video information”.

Overclock it

You can safely speed up the RPi by overclocking it. Go to “Programs > Raspbmc Settings > System Configuration. Next, change the “System Performance Profile” to Fast to overclock the system. At least for me, the “Fast mode” works reliably when running the Raspbmc off a USB stick.

Furthermore, running with USB helps to avoid corrupting the SD card that can happen when overclocking.

Use NFS instead of SMB share

If you are using a Network Attached Storage (NAS) such as Synology Diskstation, it is recommended to use a NFS protocol instead of SMB protocol to access media files in XBMC. SMB networking protocol uses much more of the RPi’s CPU, so NFS is a faster option.

For example, during my tests, a 1080p video was buffering frequently over wireless network with SMB protocol, but with NFS it played smoothly without any buffering issues.

Power it off a USB port on your TV

As this computer does not have a separate power button, a good trick is to connect it to your TV’s USB port, so that when you turn on your TV it will also boot up the computer. This way you will also need one less power plug.

Set up a WiFi adapter

I am using the Asus USB-N10 wireless adapter, which seems to work fine with Raspbmc. However, you will need to configure the WiFi adapter by following these steps.

  • In the XBMC main menu, go to Programs > Raspbmc Settings
  • Switch Network Mode to “Wireless (WIFI) Network”
  • Type your wireless network’s name to the “WIFI SSID” field
  • Type your wireless network’s password key to the “WIFI KEY”
  • Click OK and you are ready to use the WiFi adapter

Alternatively, if you have any problems in getting your WiFi adapter working, you should try the OpenELEC distribution.

Use the Plex Media Server to transcode video files

The RasPi does not have hardware decoding support for any other video codec other than H.264 out of the box, so you will need to have all video files converted into H.264 format in order to play them smoothly. Alternatively, you can buy a license to unlock MPEG-2 and VC-1 decoding.

Fortunately, there is an easier way should you have another desktop PC or a media server. You can use Plex Media Server to transcode any media file you have in your library and stream it using a PleXBMC add-on for XBMC.

First, you will need to download and install the Plex Media Server application either on your Windows, Mac OS X or Linux based computer.

After installation, configure the movie library with the media manager (go to http://your-desktop-pc-ip-address:32400/manage/index.html with your Internet browser).

Next, download the PleXBMC add-on.

In order to copy the plugin file to the RPi, you can use an FTP client such as Filezilla to copy the to /home/pi folder on your RPi. The username is pi and the password is raspberry.

Go to Settings > Add-ons > Install from zip file > Home folder > to install the PleXBMC plugin.

Go to Settings > Add-ons > Enabled Add-ons > Video Add-ons > PleXBMC > Settings to configure the add-on.

  • In the General tab, change the Primary Server Address to the IP address of your desktop PC or media server where the Plex Media Server is running.
  • In the Transcoding tab, tick Enable transcoding to allow Plex to transcode the video to the H.264 format supported by Raspberry Pi’s hardware decoding. Choose the video quality according to your preferences.

Go to Videos > Video Add-ons > PleXBMC > Movies and launch your first movie.


All in all, the Raspberry Pi starts to be ready to replace your home theater PC, but it will require some tweaking before you can realize its full potential as a XBMC front-end.

The development around Raspbmc looks very promising and after fixing all the bugs and making the operating system more stable, it will be an excellent choice as a low cost media center.

As can be seen from the demonstration video below, it has a responsive user interface when using a light weight skin such as Quartz and enough performance to play H.264 HD video files.

If you are interested in building your own RasPi, check out the list of required components.

What’s Next

Next, continue customizing the XBMC 12 Frodo user interface with this extensive guide (over 3,000 words) to learn how to set up live TV on Raspberry Pi. You might also find these XBMC Netflix and Hulu integration tips useful.