OpenELEC 3.0.0 on Raspberry Pi – Installation and Video Tests
Yesterday, OpenELEC developers announced the release of OpenELEC 3.0.0, a lightweight OS running XBMC Frodo 12.1 for several platforms including the Raspberry Pi (OpenELEC stands for Open Embedded Linux Entertainment Center). When the Raspberry Pi was initially released, I did not feel like testing it as a media center, mainly because of codecs limitations. But over time, this has improved with the availability of MPEG-2 and VC-1 codecs (for a fee), and GPU accelerated support for free codecs such as VP6 and VP8, so today I’ve tested to give a try and install OpenELEC 3.0.0 on my Raspberry Pi. I’ll first give installation instructions, then test several types of videos container formats, and video / audio codecs, as well as give some quick impression about the performance and stability of OpenELEC on this low cost board.
Installing OpenELEC on Raspberry Pi
To install OpenELEC, I basically followed the instructions provided on OpenELEC site in a Linux (Ubuntu 12.04) PC. If you are running Windows, you could do so in a virtual machine running Linux, or by using the (untested) Windows method given in the previous link.
- First download ans extract OpenELEC 3.0.0 for the Raspberry Pi:
Shell123wget http://www.openelec.tv/get-openelec/download/finish/10-raspberry-pi-builds/76-openelec-stable-raspberry-pi-arm -O OpenELEC-RPi.arm-3.0.0.tar.bz2tar xjvf OpenELEC-RPi.arm-3.0.0.tar.bz2cd OpenELEC-RPi.arm-3.0.0/
- Insert an SD card into your computer, and install OpenELEC with the following command:
Shell1sudo ./create_sdcard /dev/<sd_device>
Where you need to replace <sd_device> with your own (e.g. sdc). If you use the wrong device you would wipe your entire Linux installation, or files on a USB hard drive. You can find your device with “sudo blkid“
That’s it. Remove the SD card from your PC, and insert it in your Raspberry Pi (Model B – 256 MB RAM for me). Connect an Ethernet cable, an HDMI cable to your TV, some input devices (I used a USB keyboard and mouse), and connect the power.
First Impressions and Video Tests on the Raspberry Pi
Within a few seconds you should see the OpenELEC logo on your screen, followed by XBMC “Frodo 12.1” logo, and finally XBMC graphical user interface. At first the UI seems quite responsive, I went to the settings and it showed 40 fps refresh rate, and 95% CPU usage. I could easily add two directories from my PC SAMBA shares:
- Video_Samples – Short videos used for testing, so I did not enable a scrapper for Movie information / pictures.
- Movies – A few full movies (around 20), and enabled a Movie “Scrapper” in order to get movie information and pictures from the Internet.
Once the scrapper is running, the system slows down considerably, and is quite slow to use, but that’s OK because it’s just a one time operation. The system hung once as the scrapper was busy, and I tried to play videos.
First I tested some videos from samplemedia.linaro.org. Here are the results:
- H.264 codec / MP4 container (Big Buck Bunny), 480p/720p/1080p – OK
- MPEG2 codec / MPG container, 480p/720p/1080p – Audio only, but the videos should play if you purchase the MPEG-2 license.
- MPEG4 codec, AVI container – OK
- VC1 codec (WMV), 480p/720p/1080p – Audio only, but the videos should play if you purchase the VC-1 license.
- Real Media (RMVB) – Failed..
- WebM – 480p: OK, 720p: slow and artifacts appear sometimes, 1080p: Audio only (black screen). This result is expected as for this codec, decoding is handled by software (with some help from the GPU)
Then I tested some high bitrate videos since we are connected via Ethernet:
- ED_HD.avi (1080p MPEG-4 – 10Mbps) – Black screen audio only.
- big_buck_bunny_1080p_surround.avi (1080p H.264 – 12 Mbps) – OK, but the video stopped once to buffer.
- h264_1080p_hp_4.1_40mbps_birds.mkv (1080p MKV – 39.1 Mbps) – After a longish buffering, the video could play smoothly for a few seconds, but playing at around 2 fps.
Raspberry Pi’s Ethernet performance is not really great, but again this is kind of expected because of the system design (USB to Ethernet chipset). Some of the videos below used to test audio codecs are also high bitrate, and the Raspberry Pi struggled to play some of them from the network. Replacing SAMBA, but NFS should help a bit with performance, but this is not always a convenient option.
- AC3 – OK
- Dolby Digital 5.1 / Dolby Digital 7.1 – OK
- TrueHD 5.1 & 7.1 – No audio
- DTS-MA and DTS-HR – OK (Audio choppy, but it’s only because I played from the network. The Raspberry Pi can apparently decode those audio codecs)
I’ve also played some FLV videos I downloaded from YouTube and other websites, and most of them would play. Most videos in the “Movies” directory could play, except one with audio only, but it’s a VOB file (MPEG-2) and I did not purchase the codecs.
When you access the menu as the video is playing in the background, the user interface is quite sluggish. After my testing was complete, I still found the user interface was not as smooth as previously, so I went to the settings, and discovered CPU usage was 100%, and the UI was rendered at 22~25 fps instead of 40 fps initially. I’m not sure what may have caused this, the scrapper had finished its job a while ago, probably a background task… Rebooting brings it back to 40fps, but after playing a video, and stopping it, it drops back to 22~25 fps on my system.
Finally, the Raspberry Pi is not that bad as a media player, it can play most common videos, as long as you are ready to spend a few dollars to buy MPEG-2 and/or VC-1 license keys, and you don’t plan to play high bitrate videos (~ >15 Mbps) over the network. Some people may also become annoyed by the relative sluggishness of the user interface.