XBMC performance demo

One of the areas we’re putting a lot of work into is XBMC performance – we’ve been a bit shocked on working through some data* to find that the Pi now appears to have more XBMC users than any other platform in the world, bar the PC (we’ve overtaken cracked Apple TV 2s), and we want to make sure you have the best possible experience with the software.

(If you’ve started reading this and don’t understand a word of that first paragraph, head over to XBMC’s website to find out what XBMC is, what a media centre is and why you might want one, and then come back here.)

Dom Cobley and Ben Avison have been working on the platform for us, and the results so far are pretty impressive: video playback has always been good, but they’ve really tidied up the user experience in the menu in particular, and browsing through your media collection, even if it’s as big as Dom’s, is now much smoother and faster.

We’ve seen people online (particularly over on the XBMC forums – and particularly particularly in response to posts asking for recommendations for cheap XBMC platforms) calling Pi users fanbois, and announcing that the Pi is too laggy to be a real media player. That’s just not the case. If you’re running the latest firmware, XBMC on the Pi is more than useable: it’s something you can happily use as your main HTPC. Dom made this video so that when challenged, he and other XBMC users can demonstrate when asked that actually, the Pi’s pretty good at this stuff. He says:  “I’d quite like the laggy complainers to have something concrete to look at and admit either ‘actually it’s better than I thought’, or admit they are speed freaks who need desktop PC class equipment.” Here it is.

What you’re seeing here is OpenELEC with some performance patches Dom is currently working on, along with some other patches from Ben. We expect to see these patches appear in the standard OpenELEC and RaspBMC very soon. Those of you who are feeling brave can get Dom and Ben’s code – which is currently in beta – here. While it isn’t stable yet (we expect it to be very, very shortly) it gives you a very good idea of where we’re going with this. Enjoy!

*If you’re trying to interpret the linked data and figure out where we got that statistic from, it’s helpful to understand that XBMC/12.2 Git:20130502-32b1a5e (Linux; Debian GNU/Linux 7.0 (wheezy); 3.6.11 ARMv6l; http://www.xbmc.org) represents Raspberry Pis running RaspBMC, and the dozens of other ARMv6l platforms are OpenELEC on the Pi. OpenELEC appears more fragmented, as they tend to use bleeding-edge kernels. (They are on 3.11.1 now.) We don’t believe any other XBMC platforms use ARMv6 (ATV2 is ARMv7).

71 comments

Avatar

Excellent. Totally, completely, deeply excellent.

Avatar

Hi

You can try these changes already. Just head in to Raspbmc Settings -> Nightly Builds and select a recent build.

If things go bad, you can switch back to the regular build at any time by selecting ‘XBMC release’ in Raspbmc Settings

Avatar

Sam, have you included newclock3 patches into nightly builds?
These patches aren’t upstream yet.

Avatar

I’ll build a newclock3.

Users can get this as:

xbmc-rbp-20130930-newclock3.tar.gz in nightly builds

Thanks

Avatar

Great. (I’d suggest you update the firmware to todays).

(with usual caveat: if you prefer stability to speed, then don’t use the nightlies – or at least don’t complain about it).

Avatar

I’ve been using OpenELEC on the RPi for a while now with great success over the LAN.

Over Wireless N (DLink USB adaptor, OOTB support with RPi) I had nothing but buffering problems (file plays, then every few minutes buffers for 1-30 seconds). I spent months trying to get the problem resolved and in the end I had to buy an EoP kit.

At one point I even tried having the WAP 2 meters away and in clear line of sight, with all other wireless devices in the house turned off) – still buffered. Even smaller non-720P videos buffered.

Has ANYONE gotten XBMC working on the RPi using wireless that has no buffering issues?

Avatar

I have a RasPi in my garage running raspbmc over wireless. It syncs to SQL and a Samba share with no issues playing back 720p.

Running Frodo right now using the Edimax Wifi adapter and my WAP is about 2 meters away separated by two walls.

Avatar

Don’t know if this is your issue, but could be worth looking at…
I tried RaspBMC in the early days of having my Pi but gave up as it was buffering like mad. I couldn’t even stream MP3’s. That was over the LAN as well. I gave up and used my Pi for other purposes but still had issues like sticky keys (multiple letters per key press). I tried everything and was about to write off the Pi (It was very un-responsive) when I was trying to copy a file to a USB stick and it failed as the USB memory kept being disconnected. In the end I found that it was an incompatible wireless USB mouse that was flooding the bus and interrupting other USB messages. So, when pressing a key as an example, it would register the key-down, but not the key-up as it was interrupted by other rubbish. Once I replaced it with another one, every thing is fine and I can stream movies very happily! Like I said, it might not have anything to do with your issue, but it might be worth checking your USB devices :-) Oh, and sorry for all the words just to say that ;-)

Mattias

Avatar

I suspect that your initial problem wouldn’t *be* a problem with the current firmware: there has been an awful lot of development over the last 18 months.

Avatar

Using wireless room to room but only SD sized video from a PC downstairs or from the Humax PVR – no problems at all.

Get the latest version to see if it improves.

Avatar

I have the same issue when playing back videos from an SMB share. Manually mounting the share using the kernel space CIFS file system module (using mount -t cifs on the command line) reduces the buffering issues. I opened a bug report here:

https://github.com/OpenELEC/OpenELEC.tv/issues/2657

Avatar

I noticed the performance improvement big time when I upgraded to OpenELEC 3.2!

Avatar

Does it make any difference if running on 256MB Pi compared with 512MB Pi?

Avatar

I asked Sam a few months back and he said no. I also run my Raspbmc on a model A for power reasons, no complaints thus far, it’s no slower than the model B I used to use that is now a Minecraft server.

That said, if there are a lot of improvements coming this could change…

Avatar

The Apple TV 2 mentioned in the article also only has 256MB of memory ;-)
https://en.wikipedia.org/wiki/Apple_tv
And I suspect many similar set-top-box devices have significantly less memory.

Avatar

XBMC seems to run much smoother and faster on Raspbian than either RaspBMC or OpenELEC. Perhaps the dedicated XBMC distros are catching up? BTW, if XBMC is still broken in the Raspbian repositories, Google Michael Gorven (CocoonCrash).

Avatar

I can’t express how excited I am to see the performance improvements. When I first started with XBMC on my Pi it was pretty bad but this video definitely proves we’re getting there.

Now, in the name of all things awesome, can we PLEASE get passthrough audio of DTS-HD MA and Dolby TrueHD. A speedy interface is nice but the Pi will never be a main HTPC without the ability to passthrough high def audio. Please, please, please, make this a possibility. Tell me how much and I’ll pay it!

Avatar

THe ability to fast forward and rewind with my remote sold Raspbmc to me. ATM it’s pretty much up there as a media hub, it just needs proper iPlayer/4OD support and Netflix to kick my aging consoles out of my media setup. Netflix hates linux/OSS though, so sadly may never happen :(

Avatar

This is huge, can’t wait for this to appear in the stable code base. Any chance it will also get into XBian ?

Avatar

I’m interested in Xbian too, how come its not mentioned in the article at all? Will the updates be included for all the xbmc versions?

Avatar

Woo! I shall be happy to experiment with this. At the moment, I’m running OpenElec 3.2.1, and although I’ve never had any complaints about its performance (other than initially scanning my media, which I ended up doing on my Windows PC), I’ll enjoy seeing run faster.

Have you addressed some of the poor SQL queries? (I ought to go and log the problem with XBMC, but I’m worried that they’ll either tell me to simply get a beefier MSQL server, or to submit the relevant code change).

For example, I found that playing music in Party Mode filled up the play list with a query which was something along the lines (my apologies, I quote from memory):
SELECT song_id
FROM songview
ORDER BY random()
LIMIT 1

since this was a view, my MYSQL server writes the entire view out to disk as a temporary table, randomizes it, and picks a single record. Which takes about 3 minutes, to add a single song at the end of the playlist (so it needs to do this about every 3 minutes 30 seconds, of course). Simply replacing the songview with the song table (in MySQL Workbench) reduced the run time to about 5 seconds, without affecting the results.

Avatar

As sql queries apply to all platforms, it’s probably best to ask in xbmc forum.
Perhaps add your suggestions to this post:
http://forum.xbmc.org/showthread.php?tid=172471

Avatar

Sorry, the path is:

This is really easy and quick to do.
cyber7-out

Avatar

This confirms that CEC is quite slow relative to Wi-Fi based control apps like Yatse, which is what I have suspected for a while. Is there any reason CEC should be so slow? It doesn’t seem to respond to holding down keys that well. Perhaps there’s something in that?

Avatar

CEC sends key repeats at an interval chosen by the TV vendor. xbmc just acts on those repeats, but they are typically much slower than a keyboard or ir remote.

There is a request for libCEC to ignore the CEC repeats, and generate its own ones:
https://github.com/Pulse-Eight/libcec/issues/115

Hopefully that will get implemented soon.

Avatar

Thanks dom, great insight!

Avatar

Looking for more infos!

Trying to get something similar up and running—could you please tell me where the data is stored in this particular setup?

Since there seems to be a single device connected to the USB/Ethernet side, I’d assume that’s the dongle and it’s connected via WiFi (1400 movies don’t fit on a thumb drive ;-) ). But where is the library stored? Locally on the SD (since no other USB device is connected)? Or is it UPnP/NFS/SMB (which work fine but take an enormous performance hit, at least in my setup)?

Avatar

The dongle is a USB stick which xbmc runs from. The library is accessed from ethernet (NFS).

Avatar

Let’s hope the changes make it up the tree to the Plex client. Could replace the laptop that’s powering Plex in the attic on the Projector then.

Avatar

There’s lots of discussion about my exact set up here:
http://forum.xbmc.org/showthread.php?tid=174485

Avatar

Great news, I should update my setup!

Avatar

2 out of 2 pi’s in my house run openelec … 1 is ‘always on’ … both 256mb ram …. work perfectly and am surprised what file types they can handle …. I haven’t foxed them yet !

Avatar

I’ve been using Xbian on my Raspberry Pi for a long time now, and I’m very happy with it’s stability. I’d recommend this for others as an easy to use solution.

Avatar

We’re a massive fan of OpenELEC

Avatar

Been running openELEC, on my pi recently, glad to see its getting the good rep it deserves :)

Avatar

Wow, way to go guys! I think the biggest news to me was that I can fast-forward and re-wind! Now the demo is on openELEC (great media center distro by the way!) but are these improvements also visible if I’m using Raspbian (or any other OS I suppose)? That is are the fixes to the XBMC build or openELEC distro specific?

Avatar

Thx, for your Work!
Looks realy smooth.

Avatar

I use openelec and think it’s fantastic. There is a major omission currently affecting the Pi version: it cannot play DVDs!
Hopefully this will be rectified in time, otherwise I’ll have to switch to Raspbmc.

Avatar

Mine certainly does play DVDs, although format might be an issue. I have mine ripped to a VIDEO_TS directory of .vob and .ifo files, using dvdbackup (under linux).

So each DVD ends up as a single directory, and the name of this is used by XBMC to lookup the name of the TV Show or Movie. That directory then contains a VIDEO_TS directory, and that, in turn contains the actual .VOB and .IFO files.

Ah. You need to purchase the mpeg-2 codec for this to work (for all of £2.40)!

Avatar

I mean actually physical DVDs from a USB DVD player: these can’t be played.
While I have ripped many of my DVDs in the same way as you, I have several TV boxsets which I’d prefer not to have taking up storage space.

Avatar

That’s impressive!
Will all enhancement be port to main XMBC project?
I’m actually using XBMC on the pi but build on an arch system (because I need the pi to do more than only mediacenter). So, if I build the last git version of XBMC, will it bring me all your work?

Avatar

The raspberry-pi is impressive. Due to its impressive price tag, I just obtain an other one for the unix-server-like tasks.

Avatar

Enjoying the occasional movie as I do, in the last month I’ve watched (via Mash Up) in excess of 100 1080p movies, many replete with Dolby 5.1. Not one of these movies stuttered in any way! My old Pi just keeps on giving!

Avatar

Where did you find the repo with mashup??? Cant find any that works on my pi… All I get is depencies missing…

Avatar

So this version that Dom is working on is actually the one that will be available in raspbian repositories? Right now I see:
sudo apt-cache policy xbmc
xbmc:
Installed: 2:12.2-1
Candidate: 2:12.2-1
Version table:
*** 2:12.2-1 0
500 http://archive.mene.za.net/raspbian/ wheezy/contrib armhf Packages
100 /var/lib/dpkg/status
2:11.0~git20120510.82388d5-1 0
500 http://mirrordirector.raspbian.org/raspbian/ wheezy/main armhf Packages

Avatar

A whole year use. There is a large collection of movies.

Avatar

Very impressive video playback there – no mention of audio (music) though. Has anything been done to fix the lack of gapless playback? – I found listening to some albums really annoying as there was a significant pause between tracks.

Avatar

Still being worked on, but with latest firmware:
force_hdmi_open=1
will not close hdmi betwen tracks.

See:
http://forum.xbmc.org/showthread.php?tid=173089

Avatar

Great work!

I have two questions:
1. Will these changes be commited to the main XBMC repository?
2. How should I ‘configure’ this build before building it?

Avatar

This is nice but until there is streaming video support for AmazonVOD, Hulu, Netflix, HBO Go, etc. – I will have little use for XBMC on my pi.
If I had a huge library of digital content this would be great, but I don’t.
I also don’t have time to rip all of my DVD’s to a hard drive and I am not planning on pirating stuff either. People like to blame MS silverlight for the problem but android devices and western digital devices and Roku players etc can stream these services with very limited hardware. The first guy who figures out their secret and makes Netflix work on a pi (without “PlayOn”) will be very popular.

I can’t wait to see what pi developers will accomplish next!

Avatar

+1

Avatar

Well Hulu works (check out the bluecopy repo), but yes if netflix worked it would be in a whole new league

Avatar

wifi dongle WN725N V2 stop working with this update of xbmc :( 8188eu seems not work anymore :'(

Avatar

XBMC basics –
Why no SMB alongside NFS when browsing for files?
:(

Avatar

Is the Pi Overclock ? if yes what is the setting please ?

One more question, having the library stored on a NFS share makes it quicker than the USB stick or this is just to share the media library more easily (or scrap it faster using a PC) Thanks a lot!

Avatar

overlock settings (and lots more) described here:
http://forum.xbmc.org/showthread.php?tid=173089

Avatar

Thx for the answer.

I am trying the OpenELEC-RPi.arm-Rbej-Version-Gotham-Branch(02.10.2013).tar
right now. Is this the one embedding the patches for speed ? or they are present in the latest frodo Rbej test build as well ?

Thanks a lot

Avatar

“and the dozens of other ARMv6l platforms are OpenELEC on the Pi. OpenELEC appears more fragmented, as they tend to use bleeding-edge kernels. (They are on 3.11.1 now.)”

to fragment this a bit more and to hide our real usage stats we just released OpenELEC-3.2.2 :-)

Happy XBMC’ing and many thanks to all our Users, Bugreporters, Supporters and Developers for all the help we get from you! :-)

Avatar

Hi Stephan,
When will these patches be incorporated in openelec?

PS: Thanks for a great distribution. I am a openelec evangalist :-)

Avatar

Any news on any additional codec licences? Will we ever see hardware DTS decoding?

Avatar

+1

Avatar

… reading the article above and had to mention that we have replaced our old huge media centre with a Pi … 9 months ago and never looked back! Been rock solid streaming movies from a server and would consider it of sufficient quality to be sold in the high street (RaspBMC).

Avatar

Which skin is the one showed in the video? Thanks.

Avatar

amber

Avatar

I replaced ATV2 with Pi 6 months back, there is no looking back. I’m on RaspBMC, Pi can play 1080p on wired network very smoothly, love it.

Avatar

So what’s better to use OpenELEC or RaspBMC?

Avatar

Take a look at this:

http://www.linuxplained.com/overclocked-openelec-vs-xbian-raspberry-pi/

I am using OpenELEC on 2 Pis with a MySQL library and have been very happy.

Avatar

Hi, I have a rpi with Raspbian.
I have a web server (apache), mysql and pyload.
I have a problem with xbmc 12.3, when a video 1080p is playing, the video lag (very).
Have you an idea or do you know if this the last version of xbmc corrects this problem (less greedy? cpu 100% with 12.3 and 1080p)

Avatar

I’m using my pi as a Logitech media server with squeezeplug, but I have also installed Xbmc on it too. It seems quite slow to me, but that may just because I have the media server running too. Is it possible to install openELEC to speed up XBMC of can you only do it from setup?

I think squeezeplug is based on Wheezy, it this not good for XBMC?

I have videos on a networked samba drive.

Avatar

I have tried various flavour in the past, and each have had their little quirks. Fast forward to the present, I have just tried Xbian which installs and starts up OK, although to be honest I really don’t care much about start up times, as long as it is reasonable. After all you are not constantly rebooting. Xbian has one major flaw as far as I am concerned, and that is recognising a usb WiFi connection, it identifies the network but will not save the SSID, even if you go into the root and save it, it still does not work. What a shame for what could be a good player.
I have the latest OpenElec on, and what a difference in setup, it is so easy and works. The main problem with this is a simple music player over the network stutters, so looks like I may need to read up on the tweaking side.
Raspbian is my next install so that a fair comparison can be done, although when I initially tried it with an ethernet connection it ran fine.

Leave a Comment

Comments are closed