XBMC Final(ly) on the Raspberry Pi
Update 2 March 2013: OpenELEC 3.0 Final now used for the shootout and also tested the 12.1 update for RaspBMC. Boot-time of RaspBMC seems to have improved slightly but OpenELEC didn’t improve noticably over the 5th Release Candidate.
September last year I compared the three major XBMC versions for the Raspberry Pi. That comparison was based on early development versions of RaspBMC, OpenELEC and XBian but they already performed surprisingly well.
The latest builds of all three distributions run on the final version of XBMC 12 that was released at the end of January. Normally OpenELEC was the first to release a new version after each XBMC milestone release but this time RaspBMC was the first distro with a final version, followed by OpenELEC 7 weeks later while XBian is still under development. Yet all three have improved a lot so your XBMC experience should become even better. Time to line them up again and see if OpenELEC is still my favorite choice.
I performed all tests with a 4 GB 10x SD card, Synology NAS, Samsung LCD TV, Onkyo DTS receiver and 100 MBit network as during the previous shootout. This time the latest versions of the XBMC distributions (OpenELEC 3.0 Final, RaspBMC Final with XBMC 12.1 and XBian 1 Alpha 5) were used. Although some distributions overclock your Raspberry Pi by default I ran all comparisons at the default frequency of 700 MHz.
Installation of the early versions of the three distributions installation was far from ideal. RaspBMC was the only flavor that came with an installer but the installation took well over 20 minutes. XBian and OpenELEC required you to write an image to your SD card with third-party software or Linux. The upside was that this process only took a few minutes.
The final version of XBian comes with its own installer. This drops the need to install Win32 Disk Imager and ensures a fast and smooth installation.
The installer works like a charm. You can select a version of XBian (which it will download if you haven’t already done so) and select the drive on which you want to install XBMC. Installation is really a matter of minutes and after that you can insert the SD card into your Raspberry Pi and boot it up.
XBian needs to do some initial setup on the first boot and after that it’s begins to load and start up XBMC. The whole process including initial setup takes about 1 minute 30 seconds which is pretty fast. A nice progress indicators show how fast your Raspberry Pi is booting.
RaspBMC comes with a new and improved installer. Now you can configure networking during the installation. This is a good addition since I prefer a fixed IP address for reasons I’ve described in my Perfect XBMC Setup post. You can also configure wireless networking here. Finally the installer can install RaspBMC to USB devices and NFS shares for improved performance. something I haven’t tried out yet.
Preparing the SD card takes less than a minute and after that installation continues on the Raspberry Pi itself. This takes a lot of reboots and roughly 19 minutes of your time. At the end of the installation RaspBMC asks you in what language you want to run XBMC. A nice feature but does it really require yet another reboot?
So apart from the network config and the option to install RaspBMC on USB and NFS drives not too much has changed in the last 5 months. The installation is still rather time consuming but this isn’t too bad since it’s something you’ll probably only do once.
The final version of OpenELEC still doesn’t come with an installer. For the the more experience users this won’t be a problem but newer users can be intimidated by this. Installing using Win32DiskImager (as described here) is still very fast and within 5 minutes you can have your Pi up and running.
If you don’t plan to run an always-on Raspberry Pi setup the time it takes to start op your XBMC version is an important issue. In the first shoot out the differences were pretty big and the slowest contestant took twice as long to start-up as the fastest of the three.
RaspBMC start up time
With one minute and thirty seconds RaspBMC was by far the slowest during the last line up. The final version of XBMC is 25 seconds quicker and starting up now takes slightly less than a minute. Not bad considering it’s running a full version of Linux. The UI is somewhat slower right after starting up but this improves quickly after that.
OpenELEC start up time
OpenELEC is still the fastest when it comes to starting up. It takes 50 seconds from the moment you plug in the power adapter until XBMC is booted and ready for action.
XBian start up time
The earlier version of XBian I tested started up in about 45 seconds. The most recent incarnation of XBian takes just under a minute before it’s ready for action. I don’t know why it needs 15 seconds more (using a faster SD card) than the earlier builds but it sure takes away one of the biggest advantages over RaspBMC.
The first comparison of the three major XBMC flavors on the Raspberry Pi already revealed the Pi’s weak point. Its lack of raw processor power means it has a hard time presenting a smooth user interface. The Betas build ran at a maximum of 35 frames per second while the ARM CPU of the Raspberry was stretched to the max constantly.
All three versions have made huge strides forward but there is a good explanation for the improvements. All three distribution now limit the user interface resolution to 720p. The output will still be 1080p but the UI renders in 720P and up-scaled to 1920 x 1080. This makes a pretty big difference but a results in a blurrier user-interface Don’t worry! Videos playback is in full 1080p so your lovely Blu-ray rips will still look great.
On top of the resolution limit RaspBMC and XBian by default overclock your Raspberry Pi to respectively 800 and 840 MHz. This gives the UI an extra push. But like said before all tests were performed without any overclocking. So all results below are with the CPU running at 700MHz.
The first distribution I tested was RaspBMC. Five months ago it just managed to catch up with the other two with the installation of the latest nightly and ran at 35 FPS with a CPU load of nearly 100%.
I was pleasantly surprised when I started playing around with the final version of RaspBMC. The resolution limitation really helps and the user interface felt noticeably smoother than the last time. The only time I had to wait was while opening the list of my music albums. System information shows a healthy 50 FPS but strangely enough the CPU is almost fully idle.
The CPU being almost completely idle is due to a bug which has broken the CPU monitor. Even when playing MP3s it is still running around 0 percent while frame-rate has dropped significantly due to the CPU power required for playback.
The XBian UI runs pretty smooth and hits 51 frames per second. Unfortunately the UI became unresponsive a few times while navigating through the settings menu and the various media screens. Especially exiting the XBian Setting menu can cause some serious freezes of the system.
Where RaspBMC shows the wrong CPU load XBian decided to not show CPU load at all. This makes sense because we already know the system load is over 90% while XBMC tries to run the UI at 60 frames per second.
OpenELEC runs the UI very smoothly as well running at around 50 frames per seconds. Strangely enough after watching a movie the UI frame-rate drops to about 30 for a while after which it climbs up to 50 again. But the UI stays responsive all the time and using OpenELEC is overall a good experience.
Video Playback Performance
By far the most important part of a media center is video playback. It doesn’t matter how great the UI looks and what incredible features it has if the video playback is no good.
Fortunately all three distribution do really well and have no difficulty playing the 1080P x264 DTS test video over the network. Even when the Raspberry Pi has to do the DTS decoding playback is still smooth. Also skipping forward or backward seems to go faster that with the earlier test builds.
Next to playing videos your Media Center will probably also be used to listen to your music. Of course all three distributions have no trouble playing your MP3 or FLAC files. There is a problem with audio playback though.
XBMC on the Raspberry Pi doesn’t seem to support gapless audio playback. All three distributions perform the same here so it is most likely an XBMC issue. On my setup the pause is just long enough for my AV Receiver to drop the HDMI audio connection. When the next song start playing it needs to renegotiate the HDMI connection setting and misses the first 2 seconds of the song. Pretty annoying.
All three XBMC flavors come with a whole range of features we already saw in the previous test. You get things like Airplay, CEC and PVR straight out of the box with all three. Also they all feature an auto updater and
On top of that each distribution has its own custom settings menu in which you can fine tune and tweak Raspberry Pi specific settings.
The Raspbmc Settings menu lets you configure your network setting for both wire and wireless networking. From the menu you can also install Nightly Builds and switch between installed versions. This is a nice feature but doesn’t seem to be aimed at the average XBMC user.
The next settings tab is for overclocking settings which removes the need to manually write config files for overclocking. Turning off overclocking unfortunately results in an annoying warning about the config file not being the same as the module configuration every time you start-up. This tab also lets you turn on or off services like SSH, Samba, FTP. Here you can also change your password and turn of the “Unsafe Shutdown” warnings you get when you (just like me) shut down your Pi by unplugging the power adapter.
Another interesting feature is the Auto Updater that downloads XBMC straight from the source and then decompresses and installs it. This works very well but is rather time-consuming. Also you don’t know when it is about to happen and you have no way of skipping it. So if you want to quickly show something to a friend that’s too bad.
XBian also has its own settings menu. The look and feel of this menu matches the Confluence skin and really blend in very nicely. But that great look and feel apparently comes at a price. Each time you open the menu XBian has to generate the windows and gives you a message saying this may take up to a minute… and it does. Very annoying.
Also the menu is nowhere near as rich in features as that of RaspBMC. XBian just lets you configure your networking, license keys, services and check for updates. Ticking the Advanced Settings box changes this radically however. In Advanced mode you can configure overclocking settings and advanced HDMI settings like described in my XBMC installation and configuration guide. You can even switch kernels if you’ve got more than one installed.
Even though OpenELEC has it’s own configuration section as well it doesn’t compare to the other two. You’re limited to configuring your network, services and automatic updates. To tweak any of the other settings you need to get your hands dirty and edit the config files in a text editor.
The most important conclusion is that all three distributions have made impressive progress and by now there are no more excuses not to run a Raspberry Pi as your primary Media Center “PC”.
RaspBMC has made the most progress and apart from the small bug with the pop-up window when changing the default overclock setting it works flawlessly. Also the decreased boot time takes away one of the bigger downsides of this distribution.
Installation of RaspBMC is still rather time-consuming but you’ll only do this once so this isn’t that much of a problem. Hiding some of the more advanced features by default (just like XBian does) probably would have been a good idea though.
The other two distributions are pretty solid too but just not as good as RaspBMC at this moment. XBian absolutely lost some points for the config menu that takes over a minute to open. Also it felt somewhat laggy at times. OpenELEC is still fast but its lack of configuration options in the UI and the fact that it has no installer put it behind RaspBMC.