XBMC on NUC’s and Pi’s

I’m still looking for the perfect XBMC hardware; must be small, silent, low power, low heat, 1080p, HD audio, and play anything I throw at it without a hiccup. The number of options are increasing, but no clear winner.



I previously tested a XIOS DS running XBMC on Android, and XBMC on Linux. At that time the builds were pretty unstable. I retested the latest Linux builds, that also include XBMC 12 Frodo RC2.

I tested using the 121512 release, after rebooting, I just saw a black screen. I could see that the AVR had negotiated HDMI audio, but the screen remained black. Reading the forum thread there were many reports of similar problems, same symptoms, leave the system up, and after 15 minutes XBMC loaded. The bug has been identified, but not yet fixed in official firmware. I used a community build that included the fix, and the system booted normally.

I noticed that there are now two hardware variants of the DS, a M1 version, that I have, and a new M3 version, that apparently includes a faster processor and more memory, and is currently only shipped in the EU and UK. This seems to be consistent with the AMLogic AML8726-M SoC device containing an ARM Cortex-A9 and a Mali-400 graphic processor.

The playback results were rather disappointing, no HD audio pass-through, high bitrate content would stutter, and I would get frequent network re-buffering. This device still shows promise, but not in its current state.



I tested XBMC on a Raspberry Pi. The Pi devices are pretty cheap at $35, but the units at this price have very long lead times. Instead I opted to buy an in-stock Model B Revision 2 unit from Amazon, and also a case.

The Pi Model B Revision 2 uses the Broadcom BCM2835 SoC device containing an ARM1176JZ-F with VideoCore IV graphic processor.

Deploying XBMC to a Pi is rather more involved compared to the DS, and I opted to use the Raspbmc distribution that includes easy to use tools for Windows. The deployment tool creates a bootable SD card, that then retrieves and installs the latest builds over the internet, similar to many Linux network boot disk installers.

The playback results were rather disappointing, no HD audio support, high bitrate content would stutter, and I would get very frequent network re-buffering.

Similar to openELEC that provides a XBMC plugin for OS configuration, Raspbmc configuration in XBMC is done using the Raspbmc plugin. When I first clicked the plugin I thought it did nothing, and after several more remote clicks it suddenly displayed and did whatever my remote clicks did, causing a restart. The plugin provides lots of configuration options, including switching of XBMC versions, downloading and running nightly builds, and advanced configuration, but really it is super slow to load up.

XBMC on the DS supported HD audio passthrough, but Raspbmc did not include HD audio support. The plugin allowed me to enable the XBMC AudioEngine, with a warning that it may not work. After restarting XBMC with AE enabled, there were options for HD audio, but AE did not detect the HDMI audio output device and only offered audio output over analog or SPDIF.

MPEG2 and VC-1 codecs have to be purchased for the Pi, but as my test results were disappointing, I did not bother purchasing the codecs.



I tested one of the new Intel Next Unit of Computing devices, specifically the DC3217IYE. The device is barebones, and I used Kingston KVR16S11K2/16 16GB memory and a Kingston SMS100S2/64G 64GB mSATA card. Oh, and you need your own power cable, I happened to have a spare Monoprice 7687 3-prong power cable lying around that fit the PSU.

I don’t know what to make of it, but Intel included a gadget in the box, that plays the Intel jingle every time you open the box. I’m inclined to think that they could have included a power cable instead of the jingle gadget, but my kids do enjoy playing with the box, so it may have some marketing value.

Here are a few unboxing pictures:


I installed openELEC v3 Beta 6, that includes XBMC 12 Frodo RC2.

Most things worked fine, audio output device was automatically detected and set to HDMI, but HD audio passthrough did not work, and several videos showed artifacts during playback, even worse, some videos caused lots of artifacts and caused the device to hang. I assume the video issue is a problem with the Intel HD graphics driver being picked up by openELEC.

I am using a D-Link DSM-22 RF remote (I wish I can find more for sale), and I found that the key presses were erratic, after moving the RF dongle from a rear USB port to the front USB port, everything worked fine. I assume there is some interference near the back of the unit.

Physical size wise the NUC compares well against a Zotac ZBox Nano XS AD11 Plus, but price wise the NUC is more expensive once memory and flash storage is added.

The Nano XS is a Fusion based device, which means it will never get HD audio passthrough (AMD drivers lack HD audio support on Linux), so if openELEC and Intel can resolve the video corruption on the NUC, and XBMC can resolve the HD passthrough problem with my setup, the NUC would be a good contender.


I am still running openELEC on my Zotac ZBOX ID84 system with a NVidia GeForce GT520M GPU. This GPU supports HD audio passthrough, but as with my other devices, it does not work on my setup. The problem appears to be related to how XBMC AudioEngine targets audio, and that instead of sending the audio to the AVR, it sends it to the television, but this is speculation on my part. I logged a ticket with openELEC and XBMC, and there is a forum thread at openELEC with other Yamaha and Onkyo AVR users reporting similar problems, but nobody from openELEC or XBMC has yet responded 😦


Here is a comparison of device sizes, top is Raspberry Pi, then XIOS DS, then ZBOX AD11, then Intel NUC, and ZBOX ID84 at the bottom:


My quest continues.

RIP Boxee Box

After nearly six months of no software updates for the Boxee Box, Boxee announced the Boxee TV, and, as far as I’m concerned, the death of the Boxee Box.

Boxee is releasing an updated hardware platform, but they are abandoning all local media playback and cataloging capabilities, and instead focusing on a, US only, cloud storage DVR device.

I have no need for such a device, and based on the Boxee community forum posts, the blog comments, and even comments from their XBMC roots, I am not alone in expressing my disappointment.

I suspected this may happen, but I had always hoped that Boxee would eventually make good on their empty promises and fix the issues. If not fix it, then release an updated hardware platform that corrects the problems that plagued the first version, and I’d still be willing to pay for it.


I am one of the many users that is plagued by the HD audio playback dropout issues introduced in a firmware update almost two years ago. A problem Boxee blamed on the Intel CE4100 SDK, and promised to fix in March, but then backtracked saying that fixing it would incur too much testing overhead. Yes, break a feature that worked, then claim it is Intel’s fault, but refuse to correct it because it is too much trouble to test.

The Boxee Box will get a last update to fix an issue with Flash playback, but the HD audio issue will not be fixed.


I have already transitioned one of my Boxee Boxes to XBMC based OpenELEC 2.0 running on a Zotac ZBOX Nano XS ID11 Plus. It still has a few rough edges, but XBMC is actively being developed for a variety of exciting platforms.

The one thing about Boxee I will miss the most is the standalone D-Link DSM-22 Boxee remote, best remote for XBMC ever. If I had known they will be discontinued, and impossible to buy, I would have bought a couple spares. If you know where to buy DSM-22’s, please let me know.


Rest In Peace Boxee Box.

XBMC for Linux on Pivos XIOS DS

Pivos released a XBMC build for Linux, and I tried it out.

The Pivos XIOS DS is very small (less than 5” x 5” x 1”) HTPC supporting hardware accelerated 1080p video and HD audio playback. The XIOS DS supports XBMC for Android, and XBMC for Linux, with native hardware acceleration. I reviewed the Android port of XBMC in a previous post.

The XIOS DS is available for $115 at Amazon, placing it, price wise, between the $98 Roku 2 XS and the $178 Boxee Box.


I downloaded the 09/07/12 firmware release, and installed it using the system update procedure; extract update.img to MicroSD, hold reset button on back of unit, plug in power, release reset button when update screen displays.




XBMC launched immediately on reboot, very similar to the XBMC for Linux OpenELEC experience.





A quick zoom adjustment and the UI fits on the screen without the need to adjust resolution.



Unlike the Android version where I had to use a mouse and keyboard, I could use the included IR remote to perform all operations. And unlike the Android version, where I had to create special guest access SMB shares because NFS was not supported, the Linux version supported NFS shares with no problems.

I did encounter the same problem as current OpenELEC builds, where some addons are reported as broken in the repository, but as with OpenELEC, this did not prevent movie and series media from being correctly identified, or played.


I tested a variety of media formats, all in MKV containers, and all played without issue. I did not test DTS, DTS-HD, AC3, and TrueHD passthrough, as this build of XBMC is based on v11 Eden that does not support HD audio (included in the unreleased v12 Frodo), and I had the box directly connected to a television over HDMI, so all audio was downmixed to two channels.


All in all the Linux port of XBMC on the XIOS DS worked much better than the Android port, but as the Android port is classified as Alpha and the Linux port classified as Beta, that is expected.

The XIOS DS running Linux XBMC is not up to Boxee Box standards yet, but it may be a contender.

XBMC for Android on Pivos XIOS DS

In my ongoing quest to find the perfect Home Theater PC platform, I was excited to read that XBMC had been ported to Android. This opens possibilities for XBMC on low cost, low power, low noise, small form factor hardware, with hardware accelerated media playback.

The XBMC Android development was done on a Pivox XIOS DS device, and I ordered one from Amazon. At $115 it is not exactly low cost, especially compared to mature platforms like the Roku 2 XS for $98 or Boxee Box for $180.


The XIOS DS is really small, here is a picture showing the size of a Roku 2 XS compared to a XIOS DS compared to a Zotac ZBOX Nano XS AD11, compared to a Pulse Eight Pulse Box:



“Piovs” vs. “Pivos”; while unpacking the box I found this little gem printed on the box, one would think that spelling your company name correctly on the packaging is important:



If you’re interested in an a full unboxing, look here.


I installed the box, powered it up, and it takes about 90s to power up, much longer compared to the Roku, Boxee or OpenElec.

Navigation using the included IR remote is a bit clunky, the UI has no indication of where the current focus is, and the Ok button sometimes needs to be pressed twice. I can’t really fault Android for this as the UI is intended for tablet use, not for remote use, but it is something that needs work. Here is a screenshot of the opening page:


By default LAN and WiFi are both disable, if you click the down button, the settings icon will be active, and you can press the Ok button, once or a few times, and then enable the LAN card.

The box comes installed with Android Gingerbread 2.3.4. The auto update functionality reports everything is up-to-date, but you can get the firmware and app updates from the Pivos forum. I updated the firmware and apps, instructions are on the forum, here is a summary; download the firmware and apps RAR files, extract the contents to a microSD card, insert the microSD card in the box, navigate to [Privacy][Update System] and select update:


After several minutes the new launch screen will be up:


This screen is even less remote friendly. It took me several tries to figure out that I need to press the left and right buttons to see the different desktops, this would be equivalent to swiping left and right on the screen. After pressing the right button you will see a desktop with the settings icon:


The updated version is Android Ice Cream Sandwich 4.0.3.

I again needed to enable the LAN port, and set the correct time zone. Again the remote vs. touch had me struggling to enable the LAN port, you need to select network, then Ok, then right, and then up, and then Ok to enable the LAN port, highlighted below:



I had the box up, and updated, I wanted to install XBMC, and I discovered that the announcement for XBMC on Android support did not include the availability of official binary packages, just source code, and build instructions.

I was not really up for setting up a build environment myself, and knowing the community, I started looking for unofficial builds, and I found one at the Miniand Tech forums for the MK802, but I did not want to install it until I could find confirmation if it would work on the DS. This morning I noticed a new thread on the Pivos forum containing a pre-release APK file for the DS.

I downloaded the APK file to the microSD card, and I needed to get to the file browser to install it. I gave up on fiddling with the remote, and I attached a USB mouse, from here on I clicked the apps icon, top right on main page, launched the file browser, opened the APK file, and installed XBMC:



Once up and running, I wanted to add some network media, and this turned out to be a challenge, as NFS is not supported, yet SMB is. I normally allow anonymous/root NFS read-only access to my media files, all media players are happy with this. I do allow SMB access using a domain username and password, and most players are happy with this, just more typing. But, I was unable to enter any symbol characters, the standard XBMC remote control data entry box would not enable the symbol buttons. I tried a USB keyboard, but the “_” character resulted in a “-“ character, and the UI would not close, unless you hit the Ok button on the remote several times. Next I tried setting up a XP VM image with the guest account enabled to allow anonymous SMB network access, and just browsing to the share, that also didn’t work, as I was prompted for a username and password. I created a test account on the XP image, using a simple username and password, and that allowed me to access to the folder. The remember credentials option did not work, every time I access the folder I have to re-enter the credentials. I’m sure NFS support will be added, and these issues resolved over time.

I used the series of bird test videos to test network playback, I have MKV files ranging from 20mbps to 110mbps. I haven’t yet found a player that can play the 110mbps video without dropping frames. Unfortunately the OSD for XBMC on Android does not show frame statistics, but by visual observation stuttering started around the 38Mbps mark. Note that these MKV files only contains a video stream, no audio or other streams.

I was disappointed as I couldn’t get any of my AVC/H264/DTS/AC3/AAC based movie files to play. Since the video only files played ok, I assume it is due to the audio stream types, or a configuration option, but I’m not sure.


The platform is promising, but in its current Alpha state it still needs lots of work, both in terms of remote control based Android navigation, and XBMC on Android stability. I will definitely try again once a more stable version is released for direct deployment via the appstore.

Zotac XBOXHD-ID11 MKV H.264 Video Playback Performance

When I started writing about the ID11, my intent was to document video playback and use as a HTPC, several posts later, and I am finally getting to MKV H.264 playback configuration and performance.

This is the sixth post in a series of posts related to the Zotac ZBOX ZBOXHD-ID11.



I am not an expert in how these things work, but I have a basic understanding of video playback on Windows platforms, so let’s start with the file format; an MKV file is a Matroska Media Container file. A MKV file can contain multiple audio-, video-, subtitle-, and other, streams. A MKV file is not a video or audio compression format, it is just a container.

To play the contents of a MKV file, you need a de-multiplexer or splitter, the splitter understands the container format, and produces separate output streams.

The stream output is processed by the stream decoders, typically known as DirectShow filters. The stream filters need to understand the stream contents, e.g. H.264 video, DTS audio, subtitles, etc.

Lastly there are the renderers, the renderer produces the final output such as video display or audio output.

In case of DXVA, the video decoder and the video renderer have a close relationship, the DXVA decoded content can be directly rendered from GPU memory. In comparison, the CoreCodec CoreAVC codec supports GPU hardware acceleration, but it uses the NVIDIA CUDA platform for mathematical processing. The CUDA decoded content needs to be copied to GPU memory, resulting in higher CPU utilization.

An easy way to visualize the stream flow is to use MONOGRAM GraphStudio.

I spent quite a bit of time getting the right versions of the right software installed, and on two occasions new versions were released during my testing, and I had to test again. I started by using the K-Lite Codec Pack. But, I know not everybody installs codec packs, and not everybody uses K-Lite, so I wanted to find the minimum set of components required for playback without the use of a codec pack.

In my testing Windows and CoreCodec CoreAVC were the only commercial products, the remainder are free, and of the free products, only Haali Media Splitter is not open source.

I used the following product versions:



Media Player Classic Home Cinema 1.2.1249 (x64)
Haali Media Splitter (x86, x64)
ffdshow tryouts rev 3452 (x86, x64)
MediaPortal 1.1.0 RC3 (x86)
XBMC DSPlayer rev 30385 (x86)
CoreCodec CoreAVC 2.0 (x86, x64)
Microsoft DTV-DVD Video Decoder Windows 7 Ultimate x64
Windows Media Player Windows 7 Ultimate x64
Windows Media Center Windows 7 Ultimate x64


I tested by letting the system idle, then playing a one minute, 1080p, MKV, H.264, DTS, subtitles, video clip, full screen, on a 1920×1200 display, then back to idle. Where possible the player was set to auto repeat and play for ten minutes, where the player did not support auto-repeat, I manually played the clip three times. While playing, I recorded the CPU utilization using Windows Task Manager, the GPU utilization using GPU-Z, and the fan speed, CPU and GPU temperature using CPUID Hardware Monitor Pro.


Media Player Classic Home Cinema is simple to use; install it, open the MKV file, and it plays, with subtitles, with MCE remote control support, no additional configuration required. MPC-HC includes all the components required for playback, and does not require any system installed components to function.

From what I read, MPC-HC was the first player to include DXVA accelerated playback. Both DSPlayer and MediaPortal include codecs based on MPC-HC code.

An alternative standalone player, that I did not test, is the VLC Media Player.

Below are the MPC-HC graphs for fan speed, CPU temperature, and GPU temperature:




Below are the MPC-HC graphs for CPU and GPU utilization:




Windows Media Player is included with the standard Windows installation. WMP uses the system installed DirectShow filers for playback. Even on a x64 system, WMP is still a x86 process, as such, it requires the installation of x86 filters.

In order for WMP to open MKV files, a splitter is required, I used Haali Media Splitter.

I tested playback with three different video decoders; the Microsoft DTV-DVD Video Decoder, CoreCodec CoreAVC, and ffdshow tryouts.

I have read that it is possible to get subtitles working with WMP, but even with enabling subtitles in ffdshow, I could not get subtitles to show in WMP. I am sure it is possible, I just didn’t spend the effort to make it work.


When multiple codecs are installed, WMP player uses the preferred codec for playback. The preferred codec can be set using the Preferred Filter Tweaker for Windows 7, or it may be easier to just install one codec at a time:



Haali Media Splitter provides an alternative way of forcing video decoding using ffdshow, HMS can change the video output type to a format that is only registered for decoding by ffdshow. This is accomplished by using the [Use custom media type for H.264]. This allows you to easily switch between the Windows default ([No]), and ffdshow ([Yes]):



In order to use hardware acceleration in ffdshow, the ffdshow DXVA codec needs to be configured for H.264 hardware acceleration:


You may also need to change the DirectShow control options in ffdshow to allow the filter to be used in your player’s process space:



Below are GraphStudio graphs showing the various codecs in action:





Below are the WMP with Microsoft DTV-DVD Video Decoder graphs for fan speed, CPU and GPU temperature:




Below are the WMP with Microsoft DTV-DVD Video Decoder graphs for CPU and GPU utilization:




Below are the WMP with CoreAVC graphs for fan speed, CPU and GPU temperature:




Below are the WMP with CoreAVC graphs for CPU and GPU utilization:




Below are the WMP with ffdshow DXVA graphs for fan speed, CPU and GPU temperature:




Below are the WMP with ffdshow DXVA graphs for CPU and GPU utilization:




Windows Media Center is included with the Premier and Ultimate editions of Windows. MCE does not use DirectShow for playback, instead it uses Windows Media Foundation. In order to use DirectShow filters in MCE, either the media type is not natively supported by WMF but is supported by DS, or the WMF media type is disabled using e.g. Preferred Filter Tweaker for Windows 7. MCE runs as a x64 process on a x64 system, as such, it requires the installation of x64 filters.

As with WMP, MCE also requires the Haali Media Splitter to open MKV files. And to use ffdshow instead of the default WMF decoders, set the HMS [Use custom media type for H.264] option to [Yes].

I tested playback with two different video decoders; the Microsoft DTV-DVD Video Decoder, and ffdshow tryouts.

I have read that it is possible to get subtitles working with MCE, but even with enabling subtitles in ffdshow, I could not get subtitles to show in WMP. I also tried the Media Control plugin that is supposed to enable remote control support for ffdshow subtitles, but I could not get it to work. As with WMP, I am sure it is possible, I just didn’t spend the effort to make it work.

I could not find a way to loop playback in MCE, or in MediaPortal, or in XBMC, so instead I manually played the video three times in a row. The resulting fan speed, CPU and GPU temperature graphs are not very interesting, so I am only including the CPU and GPU utilization graphs.


Below are the MCE with Microsoft DTV-DVD Video Decoder graphs for CPU and GPU utilization:




Below are the MCE with ffdshow DXVA graphs for CPU and GPU utilization:




MediaPortal is a Home Theater PC frontend, similar to Windows Media Center, but open source. Like WMP, MP uses DirectShow for playback, but unlike WMP, or MCE, MP allows for explicit filter configuration, including which filters to use for which media types:


I tested playback with two different video decoders; the Microsoft DTV-DVD Video Decoder, and ffdshow tryouts.


Below are the MP with Microsoft DTV-DVD Video Decoder graphs for CPU and GPU utilization:




Below are the MP with ffdshow DXVA graphs for CPU and GPU utilization:




XBMC is a Home Theater PC frontend, similar to Windows Media Center, but like MediaPortal, it is open source. Unlike MediaPortal, that just supports Windows, XBMC also supports Mac, Linux, and XBox. XBMC has its roots in the XBox, but XBox support has just been suspended. In order to support DXVA on Windows, a Windows only DirectShow port of XBMC was created called DSPlayer.

In order to switch between codecs used in XBMC DSPlayer, you have to edit a configuration file. Details of the process can be found here.

I read that DXVA2 support will be natively supported in future XBMC builds. The DSPlayer build of XBMC is much newer than the latest released XBMC. This build of XBMC included native support for DXVA2 without the need to use DSPlayer. The DXVA2 option is in the system menu. I did notice that the first few seconds of playback produced screen artifacts, hopefully this will be corrected when this functionality is released.

I tested playback with three different video decoders; built in DXVA2, DSPlayer MPC codec, and DSPlayer ffdshow tryouts.


Below are the XBMC with DXVA2 graphs for CPU and GPU utilization:




Below are the XBMC DSPlayer MPC graphs for CPU and GPU utilization:




Below are the XBMC DSPlayer ffdshow DXVA graphs for CPU and GPU utilization:




Playback load summary:


Fan Speed

CPU Temp

GPU Temp

CPU Load

GPU Load

MPC-HC 2700RPM 62C 84C Low High
WMP, DTV-DVD 2400RPM 59C 78C Very Low Low
WMP, CoreAVC 1800RPM 54C 86C Medium Medium
WMP, ffdshow 2400RPM 59C 78C Low Medium
MCE, DTV-DVD       Very Low Medium
MCE, ffdshow       Low Medium
MP, DTV-DVD       Low Low
MP, ffdshow       Low Medium
XBMC, DXVA2       Very Low Medium
XBMC, MPC       Low Medium
XBMC, ffdshow       Low Medium



If all you need is video playback, you can’t go wrong with Media Player Classic Home Cinema.

All other configurations require Haali Media Splitter and ffdshow.

If you want to use Windows Media Center or Windows Media Player with subtitles, you will need to do some more research.

If you run Windows and want a MCE alternative that is easily configurable, use MediaPortal.

If you need Mac or Linux support use XBMC, or if don’t mind configuration files and bleeding-edge code on Windows, use DSPlayer.

As long as your player of choice supports DXVA, the ID11 has no problem playing 1080p MKV H.264 content.