XBMC for Android TV


It’s been quite some time since we initially released the original version of our highly acclaimed XAF Custom Build of XBMC for Android TV and we’d like to begin by stating that we’re very proud to see that it has been downloaded over a half a million times, and is even being pre-installed to many of the new Android set top boxes which have began to hit the market. This is the first and only truly End User Friendly release of XBMC available on the internet, and we’re hoping that it will in time bring XBMC to a whole new mainstream level.

Since there are probably many of you here who don’t have a clue what XBMC is but are simply looking to install the new “hot” software application to your device, we’ll begin by giving you a brief clarification of what this incredibly popular open source software platform has to offer. XBMC is a media center software which through the use of third party addons, allows you to access pretty much any content available through online streaming sites, but formats them into a simple and easy to use video on demand type interface.

It’s important to remember that because the software is simply linking to these existing web sites (who in fact link elsewhere themselves), this is all entirely legal and on the up and up. There are new addons being developed on a weekly basis, and the opportunities are endless. Right now this XAF Custom Build, which is now considered to be a Stable Release, offers you access to some of the most popular XBMC addons preconfigured. This build also employs what’s called an external player in order to provide full hardware accelerated video decoding on pretty much any Android device known to man.

FINALLY, A STABLE RELEASE OF OUR END USER FRIENDLY XAF CUSTOM BUILD OF XBMC FOR ANDROID TV IS OUT!

Step 1: Install the “MX Player” application to your Android device. You can do this through the Google Play store, or simply by navigating to this page on your device’s web browser and then clicking on the appropriate download link below:

MX Player for NEON Devices
MX Player for Non-NEON Devices

Step 2: Launch and exit the “MX Player” application on your device at least once before continuing.

Step 3: Download and install the “XAF Custom Build of XBMC” to your Android device. You can do this by navigating to this page on your device’s web browser and then clicking on the appropriate download link below:

XAF Custom Build for NEON Set Top Boxes
XAF Custom Build for NEON Touch Screen Devices
XAF Custom Build for Non-NEON Touch Screen Devices

NOTE: Should you encounter any errors at this point, make sure to Enable “Unknown sources” under “Security -> DEVICE ADMINISTRATION” within your device’s “Settings” panel.

Step 4: Once it’s done installing, launch the “XBMC” application on your device for the first time, wait a minute before you begin using it so all updates can go through, then jump right in!

Congratulations! You’re now one of the hundreds of thousands of people from around the globe that are loving XBMC for Android and all the potential it has to offer into the future. You’ll definitely want to toy around with it for a couple of hours to see all the cool stuff it has to offer. If you need any assistance with it whatsoever, please feel free to visit our blog at your convenience. It would probably also be a good idea to visit our friends at XBMC HUB for further general type XBMC information. Keep in mind that this is just the beginning, it’s going to get better and better as time goes on.

I personally do not use the XAF build because SD videos are scrambled. Our friends at Freaktab.com Did an awesome job putting this FAQ together. Shout out to all Finless Bob and Abducted for this post.
First HERE is a great thread by dark_angel where you can read all about XBMC, what it can do, what nice plugins there are and how to install them. Also there is information how to use XBMC in combination with an external player (MX player) for hardware acceleration. But if you ended up here i guess you know what XBMC is and you know you want it! 

BASIC INFO

Hardware accelerated decoding means the video is decoded by the GPU (graphics processing unit) instead of the CPU. (i know that’s hardware too right??? ) This is often more efficient/faster so you can play higher resolution videos.

The standard version of XBMC for android doesn’t support HW accel decoding but uses software decoders to decode video. This means it’s very slow and you wont even get close to playing HD video.

But the developers of XBMC do have “test builds” available with HW accel decoding.
You can find those HERE
The ones with HWACCEL or STAGEFRIGHT in the filename are the ones with HW accel decoding.
So THIS one is the latest.
But with THIS one you can check CPU load, cache size (for non-local files) and the amount of dropped frames by pressing the letter O while playing a video. (not working with the latest version)

The HW accel version of XBMC for android is still in a very early stage of development. So expect some bugs, but also expect it to get better and hopefully faster! 

WHAT WORKS AND WHAT DOESN’T

LIBSTAGEFRIGHT
Rockchip released a patch to fix or at least improve the HW accel decoding. This patch is called libstagefright. I haven’t done tesst without this patch, but lets just assume results will be worse. 
As far as i know pretty much all available custom ROMs (the later versions) have the libstagefright patch. If your custom ROM doesn’t have it or you want to use the stock ROM  there are ways to “install” it. Just search the forum how to do that.

XBMC FOR ANDROID WITH HW ACCEL DECODING
Without tweaks XBMC will only use the HW accel decoder on videos where the resolution is dividable by 16. For instance 1280×720 (720/16=45). But for a very common movie resolution like 1280×532 (532/16=33,25) the HW accel decoder wont be used and while it is a lower resolution video as the 1280×720 one it will play much much worse. This also means that, without tweaks, the HW accel decoder will also not be used for full 1080p/1920×1080 (1080/16=67,5) videos. So here is the tweak to fix it…

ADVANCEDSETTINGS.XML
Lewy20041 pointed out that you can tweak XBMC by using the advancedsettings.xml file. By adding the following code to that file you will force XBMC to always use the HW accel decoder even if the video is not dividable by 16. It will also force it to use the HW accel decoder for different codecs. The advancedsettings.xml file must be placed in /android/data/org.xbmc.xbmc/files/.xbmc/userdataCode:

<advancedsettings>
  <video>
    <stagefright>
      <!--  -1 is default, 0 is never used this codec, 1 is always use this codec, bypassing blacklist -->
      <useavccodec>1</useavccodec>
      <usevc1codec>1</usevc1codec>
      <usevpxcodec>1</usevpxcodec>
      <usemp4codec>1</usemp4codec>
      <usempeg2codec>1</usempeg2codec>
      <useswrenderer>false</useswrenderer>
    </stagefright>
  </video>
</advancedsettings>

You can get a pre-made advancedsettings.xml file HERE (Right mouse click and “save target as”)
Or a zipped version HERE

AUDIO 2.0/5.1
As it seems right now these RK3066 devices will only output stereo/2.0 audio. While HDMI can handle much higher and with the right speaker system with digital receiver any AC3 or DTS audio stream could just be send directly to that digital receiver (passthrough) it doesn’t seem to be working. HERE you can find a thread about a MINIX firmware apparently supporting 5.1 audio, but i think it only works with AC3 and not in combination with XBMC. But i guess they are working on it. Lets hope they dont forget about the RK3066 now that the RK3188 devices are here.

LIVE STREAMS PATCH
Again big thanks to Lewy20041 for providing a patch for live video streams.
Lewy20041:unpack thease files http://d-h.st/lQB into /system/etc/
set permisions “rwx — —” to install-recovery.sh
this way it load fix at startup.

Finless:Additionally if your using one of my ROMs it has init.d script support.
Just rename the script to 00script
copy it into the init.d folder.
reboot

720p vs 1080p
There are 720p kernels and 1080p kernels available.
These devices by default have a 720p kernel, meaning the “internal system” will run at 720p resolution no matter what. Even if you set the output to 1080p under settings it will just take that 720p resolution and upscale it to 1080p.
So when you watch a 1080p movie on a 720p kernel (and the output set to 1080p under settings), that video image will first be downscaled to 720p (loosing detail in the process) and then upscaled again to 1080p (just increasing pixels, not adding detail) before it’s send to the TV/Monitor. So even if you are able to play a 1080p movie on a 720p kernel, all detail over 1280×720 resolution will be lost. That doesn’t mean it still cant look very good and you’ll have the benefit of a fast running android and other apps. Also i think you will be able to play 1920×800 resolution videos (a very common movie resolution) without having to overclock the device (even though you wont get the full detail).

With a 1080p kernel you will have real 1920×1080 output to your TV/Monitor. Meaning when you watch a 1080p movie you will also see that 1080p detail. However with a stock/non-overclocked kernel you wont be able to watch even the lowest common 1080p movie resolution which is 1920×800 without a lot of dropped frames. So you will have to overclock…

So with 720p kernel you can play (most) 1080p movies, but you wont see the detail so there is no real reason to watch a 1080p movie. And with a 1080p kernel you will be able to see the extra detail of a 1080p movie but you wont be able to play them!!!  I think that’s what they call a “catch 22″ 
Unless… you overclock… 

PERFORMANCE UG007II with Finless 1.7a with stock and 2dark4u (UG802) OC kernel.
These are some rough indications of what you will be able to play with that kernel. (720p/1080p/stock/overclocked)

720p kernel, stock speed (GPU at 266mhz)
I haven’t tested this but i’m expecting videos with a resolution up to 1920×800 to play. (Can somebody confirm?)

720p kernel, overclocked (GPU at 466mhz)
Again not tested, but by looking at the 1080p results this shouldn’t even break a sweat with 1920×1080 videos.

1080p kernel, stock speed (GPU at 266mhz)
Video with a resolution up to 1920×688 (not a standard movie resolution) can be played. 1920×800 unfortunately has way too much dropped frames.

1080p kernel, overclocked (GPU at 466mhz)
Video with a resolution up to 1920×1080 can be played

NOTES
– When i use 1080p50hz it seems i always have quite a bit less dropped frames compared to 1080p60hz. Maybe because the GPU only has to do 50 updates/sec instead of 60 or maybe it has to do with something else, but i assume the same applies to 720p 60hz/50hz, so i suggest you use 50hz if that’s possible.
If this really makes that big a difference, maybe kernel makers are able to build a 24hz option in there since quite a few TV’s support that and MAYBE that means there is no need for overclocking. (For the 720p kernels at least)

– With the overclock kernel (GPU at 466mhz) i can play 1920×1080 videos perfectly even when i lock the CPU to 816mhz. Of course this is because the GPU does most of the work. But this also means you dont need a kernel that overclocks the CPU, just the GPU. Even if i use “interactive” or “ondemand” governor with a max of 1.6ghz i will get random dropped frames. I have no idea what the real difference is between these scaling governors, but “hotplug” seems to work best for me. Since 816mhz seems to be enough and apparently these governors dont always scale fast enough (considering the dropped frames) i’m not using hotplug governor with a min freq of 816mhz and a max or 1.6ghz. But like i said the stock 1.2Ghz is more than enough.

– For people having problems with streaming movies over a SMB/Windows network maybe there is a workaround. I just tested playing files from my local server using the SMB/Windows network and XBMC doesn’t seem to buffer anything or at least very little. This wont be a problem most of the time but during very high motion scenes or scenes with a lot of movie grain the bitrate can be much higher than the movie average and your WIFI connection might not be able to keep up with that.
I also have a remote server and i stream my movies from that server using an FTP server. That way XBMC will use a buffer of at least 25MB. That way bitrate bursts are covered by the buffer.
I know a lot of NAS devices have FTP servers build in and on normal computers/servers you can always use the free filezilla (windows).

– Overclocked kernels: As far as i know right now there are overclocked kernels available for the MK808 (non-B) and the UG802 and i think that UG802 kernel should be compatible with Minix Neo G4 and the Rikomagic MK802 III. That doesn’t mean all other sticks wont be able to use overclocked kernels, that just means if you do use one of those kernels you will loose WIFI (and BT) and will have to use an USB WIFI dongle or USB to ethernet adapter. However the MK808 kernels dont work on my UG007. So maybe for some devices neither kernel works, but i think for most at least one will (please correct me if i’m wrong). With the MK808 kernels the GPU is clocked at 433mhz or 400mhz. I’m not sure if that will be enough for 1920×1080. 1920×800 shouldn’t be a problem.

– I have this simple wattage meter and figured i share some results.
Stock/non-overclocked 1080p kernel, max load (Epic Citadel) it consumes 5w, but since the power supply itself gets a little warm lets just assume my UG007II uses about 4w.
2dark4u OC 1080p kernel CPU 1.6Ghz GPU466mhz, max load (Epic Citadel) 7w, again my UG007II probably 6w. But while watching a 1920x1080p movie in XBMC it’s at 4-5w 99% of the time. So that would be 3-4w for the UG007II, the same as the stock kernel under full load.
So when comparing the full load there is an 50% increase in power usage (4w -> 6w), but when using an overclocked kernel to watch even 1080p movies using XBMC the max power usage is about the same as the full load power usage with the stock kernel. I’m definately not saying use overclocked kernels without a heatsink, but “i think” a rather small heatsink (like on the MK808(B)) should be enough, since even such a small heatsink will AT LEAST quadruple the cooling surface area compared to no heatsink at all.
BUT! OVERCLOCK AT YOUR OWN RISK! AND NOT WITHOUT A HEATSINK! (even if it’s just a small one) That’s what she said…. 

1 General FAQ

See also: XBMC all platforms FAQ for FAQs that apply to all versions of XBMC.

1.1 Will this really do 1080 and all that stuff the desktop can do?Shortcut: #Really?Yes! This is a full port of XBMC! It is not a thin client or lite version!Note: Hardware video decoding support is very limited right now, so most devices will have to use software decoding. Expect support for hardware decoding to improve with time.The initial aim for the Android port is to get XBMC working on inexpensive Android set-top-boxes. Phones and tablets will be supported as well for those who want XBMC on-the-go.
1.2 Installing/getting XBMC for AndroidShortcut: #InstallingMain page: HOW-TO:Install XBMC for AndroidSpecial test builds (official and unofficial) for hardware video decoding and more can be found on the Android testing forum.If you’ve bought a device that was advertised to run XBMC, such as the Pivos XIOS, G-box, MiniX Neo, etc, then you should check with their respective websites for a final v12 Frodo build. Many of these devices need specific builds for hardware decoding and won’t work correctly with the generic build released on xbmc.orgA basic v12 build of XBMC for Android (APK) can be found here: http://mirrors.xbmc.org/releases/android/ . XBMC for Android will eventually come to the Google Play application store once there is support for more Android devices.Nightly builds can be found here: http://mirrors.xbmc.org/nightlies/android/Unofficial builds can be found here. These include non-neon builds (i.e., Tegra 2):  Editor note: Anyone want to find some unofficial builds that are unrelated to (crappy) XAF?
1.3 Is XBMC for Android different from normal XBMC?Shortcut: #VersionThe current version of XBMC for Android is based on XBMC v12.1 Frodo, and is based on the same code as XBMC for all the other supported platforms.
1.4 How do I find out what version of XBMC am I running?Shortcut: #Current_buildXBMC main menu > System > Lower submenu > System info. Note the version and/or build date.
1.5 Video and audio formats XBMC for Android can playbackShortcut: #FormatsXBMC for Android supports all the same formats that other platforms do (such as desktop OS).Due to the weak processing power of most ARM processors, for smooth playback most Android hardware will require proper hardware decoding. (See #Requirements below)
1.6 Accessing mediaShortcut: #MediaSee also: Adding videos to the library and File sharingYou can connect to media that’s being shared from a computer, HTPC, or NAS device on your local network.You can access media on the internal memory, SD cards or from USB ports (hard drives, USB stick drives, directly or via hubs, etc).
1.7 Add-ons and skinsShortcuts: #Add-ons#SkinsXBMC for Android is a full version of XBMC and will be able to use all non-platform specific add-ons and skins. More feature rich (CPU demanding) skins like AEON Nox might not run smoothly on lower powered systems, so keep to “lighter” skins for those boxes.If you are using a touch screen device and the build you are using did not include it, you can manually instal Add-on:Touched for better touch screen support.
1.8 Remote controlsShortcut: #RemotesSome Android set-top-boxes come with a remote and an IR port which XBMC can use.Any Keyboard such as wired, wireless, bluetooth (if supported in your Android ROM). This includes “keymotes” such as a Rii, Boxee remote, most “air mouse” keyboard remotes, and others that appear as a normal USB keyboard to the system.Web interfaces, including add-on interfaces.XBMC smartphone and tablet remote apps.Other IR remotes can be used with IR receivers such as the Flirc.Some Android devices support CEC
1.9 RequirementsShortcut: #RequirementsSee also: Android hardwareNOTICEIt is highly recommended for users to not make any purchases in anticipation of running XBMC on Android without researching the device you want to buy. If you do buy, make sure multiple people can verify that it works, and be aware that most of these builds are not finished products! If in doubt, don’t buy anything until development is further along!XBMC for Android is still too early in development to have firm hardware requirements. As such, this is subject to major changes. A conservative estimate would be:Something similar in spec to the Pivos XIOS (the development target for the initial Android port)A NEON compatible ARM processor (for example: Tegra 1/2 probably won’t be supported. Tegra 3 is okay.)Android 4.0 or newer (might work on older versions such as 2.3, but this is a conservative estimate after all)Hardware decoding support in XBMC is likely a must for HD video playback (720+). Don’t expect this to work on any device until someone has specifically tested it and can confirm hardware decoding support for that device.Avoid hardware that uses the Allwinner series of chips (such as the Allwinner A10). Development is not going well for these devices.
1.10 Google TVShortcut: #Google_TVGoogle TV devices are currently not supported.
1.11 Launching Android apps from within XBMCShortcut: #AppsXBMC can launch other Android apps by going to “Programs” (on the home screen) and selecting the app you want to run.
1.12 Automatically start XBMCShortcut: #StartupYou can automatically start XBMC when your Android device boots up using an application such as Startup Manager (free)
1.13 Why can other players work with HD video but not XBMC?Shortcut: #Hardware_decodeHD video (720 and 1080 resolution files) requires what’s known as hardware video decoding, using special chips that handle video playback, in order to run smoothly on most ARM/Android systems. Some Android systems have powerful enough CPUs that they can playback some HD video without hardware decoding, but most will require it.Unlike most OSes, hardware decoding on Android isn’t standard across different manufacturers and chip makers.Hardware video decoding is still under very active development in XBMC for Android, and it is expected that XBMC will be able to support a large selection of devices.Other players have hardware video decoding because they’ve signed NDAs or are using closed source code, which are not options for XBMC.

2 Troubleshooting

See also: Troubleshooting

2.1 Getting more help with XBMC for AndroidShortcuts: #Forum#IRCXBMC for Android specific help forum#xbmc IRC chat channel on irc.freenode.org.
2.2 Userdata folder and logsShortcuts: #Userdata#logs#LogsThe userdata folder and debug log is located on external storage/sdcard at one of the following locations (depending on your device):userdata folder/Android/data/org.xbmc.xbmc/files/.xbmc/userdata//sdcard/Android/data/org.xbmc.xbmc/files/.xbmc//data/data/org.xbmc.xbmc/files/.xbmc/Be sure to have hidden folders set to be shown in your file explorer.debug log/Android/data/org.xbmc.xbmc/cache/temp/xbmc.log/sdcard/Android/data/org.xbmc.xbmc/cache/temp/xbmc.log/data/data/org.xbmc.xbmc/cache/temp/xbmc.log 
2.3 How to hide the Android navbarShortcut: #navbarSince Android v4 (aka, Ice Cream Sandwich), Android has changed how their navigation bar works. On some Android devices that do not have physical buttons, the navbar cannot be normally hidden, but only “dimmed”. Some Android set-top-boxes have this “no buttons” flag set, and will not hide the navigation bar when using XBMC or any other full screen videos.To remove the navbar:You can use “HideBar” (Has a free version, and is open source if you wish to compile yourself)The app “Full!Screen” is free and should also work.A custom Android ROM can be installed to correctly handle the navbar on set-top-boxes.There’s some other tricks you can do if you have rooted the device  Editor note: I keep hearing this, but haven’t found any of these tricks yet. If someone finds one, please note it here.
2.4 XBMC uses the battery too fast on portable devicesShortcut: #BatteryThis is a known issue. The main effort right now for XBMC for Android is set-top-boxes, but expect power usage issues to improve in time.
2.5 Issues with audio volumeShortcut: #VolumeXBMC has its own volume level in addition to the Android system volume level, so be sure to check that both are up if you are having issues hearing audio.
2.6 Performance: video buffering, stuttering, choppinessShortcuts: #Buffering#PerformanceNote: Remember that hardware video decoding, which will be required on most devices for smooth video playback, is still very limited at this time. (see #Requirements)Avoid using wireless. A lot of Android devices have weak wifi, even those that advertise as being wireless-n. It may be possible to use a USB-to-ethernet dongle on some devices, or even a USB wifi adapter that has a better wifi radio than what is built-in.Switch to a different network protocol to see if that has any effect, i.e. FTPWebDAVSMB, etc. Note that NFS currently isn’t an option on the R-Pi yet.Try sharing the media on another device to rule out a device-specific (or network) issue.Turn off thumbnails, XBMC > Settings > Video > File and deselect ‘generate thumbnails’.h.264 Hi10P will not work as there are no ARM processors powerful enough to software decode it, and no hardware decoders exist for it.If your TV/receiver supports it, enable various audio passthrough options to reduce the load on the CPU.If RSS feed is enabled, disable it in settings. This makes the main menu a bit faster. In fact, having rss enabled is probably the single-biggest battery-killing cpu-draining thing you can do.

Recent Content