By Werner Ruotsalainen on Tue, 03/26/2013
This post is intended for readers with advanced technical knowledge who have jailbroken devices. If you don't jailbreak, it contains information about the real-world performance of Apple's new Lightning-HDMI adapter.
This article elaborates on making the (jailbreak-only) excellent multimedia player XBMC (Free) display its contents over AirPlay, through an Apple TV 2 or 3. It also examines video playback over Apple's new Lightning-HDMI adapters.
I've recommended the free but still excellent XBMC media player (iOS Wiki page) in several of my articles. While it certainly delivers somewhat lower performance with high-resolution videos than some other players, it is free and supports some video, audio, and metadata formats very rarely supported by other players – if at all. For example, as has been pointed out in my "Lossless audio playback on iOS" article series, it's the only player to play back lossless and/or 24 bit WMA's.
External TV / monitor / projector output has only been recently added to the iOS version of XBMC. In my previous article HERE, I've explained how it should be used on previous-generation iDevices; that is, ones without the new Lightning adapter.
As I'm preparing a full report of the new Lightning-HDMI adapter, I've decided to thorougly test its performance with XBMC, along with the wireless AirPlay, which the new, current 12-series XBMC does support. (Please see THIS MacRumors thread for my posts on some of my benchmark, latency etc. measurement results of the Lightning adapter. I've linked to some of my older posts HERE, at the bottom. Newer posts can be found on page 18 onwards.)
Which XBMC version to go for?
First and foremost, as with previous versions, not even the latest official, stable XBMC version, 12.1, does support high-resolution wired / AirPlay output. You WILL need to use THIS installer file. (It's the same file as the one recommended in my previous XBMC article dedicated to high-resolution local playback.) Transfer it to anywhere on your iDevice.
Installing is simple. Basically, you'll want to install the official XBMC version from the http://mirrors.xbmc.org/apt/ios/ repository first, as is explained HERE, in section "1 Installing from Cydia". After installing, just start iFile (a GREAT jailbreak app well worth the $4) and tap the DEB installer file you downloaded first. In the pop-up menu shown, select "Installer" – the standard method of installing DEB installer files. (For example, I distribute the beta versions of the jailbreak tweaks I write as .DEB files too – see for example my iPhone 5 video camera enhancer posts HERE.)
Note that XBMC's (current) AirPlay support is, technically, not mirroring, but still not native ATV-decoded video playback, unlike with the stock Videos app or most third-party AppStore video players supporting hardware-decoded playback. That is, it's not the ATV that decodes and renders the original video file, but the iDevice itself. This means the results won't be as good as with native ATV playback, one of the biggest advantages of AirPlay.
Enabling AirPlay is explained HERE, in section "3.4 Resolutions iDevices can play and output". (See the right column of the chart.) Basically, you need to connect to the ATV2/3 and explicitly start mirroring. It's only by doing the latter that XBMC will let you play back videos on the ATV in full screen, without the, in this regard, much-much worse (non-fullscreen) mirroring mode. After this, just do exactly the same as with wired external output: go to System > System > Video Output and change the default Full Screen #1 to Full Screen #2 by tapping either arrows. (You'll only be able to do this if you, as explained above, connect to the ATV and enable mirroring before starting XBMC.) I've annotated this in the following screenshot:
After waiting for some 10 seconds, the external screen comes alive, displaying whether you want to keep the new resolution. Assuming you've already switched to the, for external TV playback, recommended “Confluence” skin, just do a single-finger left swipe to highlight "Yes" and, then, tap the screen once, with one finger, to activate the button. If you fail to do this quickly, the old setting will remain. A shot of this:
Unfortunately, as has been pointed out above, you WILL need to use the 12.0-Alpha7 version for any video over XGA with both AirPlay and wired Lightning adapter playback. (As you also needed to do with the old, wired, non-Lightning adapters.) Let me show you two examples of the official, current (12.1) and the high-res friendly Alpha7 versions, both showing the standard resolution chart I've created for benchmarking (downloadable video HERE):
(official XBMC version. Click for the entire shot. As you can see, the extinction point is around 550-560 lines.)
(Alpha7 version running on an iPad 3. Click for the entire shot. As you can see, the extinction point is around 700 lines.)
While the latter is still not as good as that of the same Alpha7 outputting to an external display via the old (non-Lightning) VGA / HDMI adapters on previous iDevice models, it's still much better than the pretty bad resolution delivered by the official XBMC version. For the record: this is how Alpha7 renders 1080p videos over the old (non-Lightning) VGA / HDMI adapters:
As you can see, the extinction point is exactly at 1080 columns, meaning the old, non-active, non-Lightning 30-pin adapter adapters indeed make full use of the available resolution, unlike AirPlay – or, for that matter, the new Lightning-HDMI adapter (see below).
The Lightning adapter
As has already been hinted on, over the Lightning-HDMI adapter, the resolution is considerably higher than with AirPlay. Also, as with AirPlay, the full screen is utilized. A screenshot of the settings screen, the Resolution list being set to the (default) maximum, that is, 1600*900:
A shot of the iPhone 5 driving an external display through an Apple TV and wireless AirPlay:
As you can see, the output resolution is exactly that of the iPad 3 using AirPlay (see above).
Two shot of the effective resolution of the (wired) Lightning adapter:
Note that, as has been explained above, it's still worse than true 1080p – again, the old, "passive" adapters.
XBMC, as has pointed out several times in my articles, has clearly worse support for high-resolution playback than some AppStore players with hardware decoding support. This, unfortunately, also means there's absolutely no support for rendering more than 30 fps of 1080p videos. THIS 120 fps video shows the playback of my standard 1080p60 counter benchmark video (original video file HERE) on an iPad 4. As you can easily check by advancing the individual frames one-by-one, the playback speed is 30 fps only. This is independent of whether you use the hi-res friendly Alpha7 version or the official 12.1 one - both will play back any 30+ fps at 30 fps only.
(As with all my 120 fps benchmark videos, I provide this - and the next - file as is, as a downloadable, non-YouTube one. It's only this way that you can easily advance, by one frame only at a time, to correctly evaluate the framerate of the playback - without having to install separate download tools / scripts to download video from YouTube first.)
Lower-resolution 30+ fps videos, on the other hand, might be played back with more frames rendered in runtime. For example, the A6-based iDevices (currently, the iPhone 5 and iPad 4) play the "dumbed-down" version of my 60 fps benchmark video with around 50 fps. (Dumbed-down, in this case, means XGA resolution only and the computationally easier-to-decode MPEG-4 encoder.) Over the Lightning adapter, as with standard mirroring, XBMC's output will also be around 50 fps, as can also be seen in THIS 120 fps video shot of the benchmark test video.
Should you just forget XBMC if you have a new-generation device?
This all means you:
- will have inherently worse resolution over even the Lightning-HDMI adapter, let alone AirPlay to the Apple TV, and
- you can't play back high-resolution ((720p) HD or Full HD) videos with more than 30 fps.
These will NOT be a problem if you stick with AppStore players making direct use of the hardware decoder of the iDevice. Then, it'll be the Lightning adapter (or, if you use AirPlay, the Apple TV 3) that does the decoding, allowing for both true 1080p resolution and even true 60p playback.
All in all, I in no way recommend XBMC if you plan to play back 1080p videos on external displays if you have an iDevice with the new Lightning connector. There simply isn't a way of driving the monitor at 1080p. Get a decent AppStore player instead for much higher (true) resolution and, with 30+ fps videos, the original framerate.
If you have an earlier (non-Lightning) device, at least the resolution won't be hit if you use the VGA or HDMI adapter. (AirPlay playback will be as restricted as with new-generation, Lightning-based devices.) The framerate will, however, also be capped at 30 fps during 1080p playback, however. That is, if you have 30+ fps videos, you'll really want to use some other player even if you have, say, an iPhone 4S or an iPad 3.
As a rule of thumb...
While I certainly recommended XBMC in the past, I don't really do it any more now that the top AppStore players have, in many respects, closed the gap, for example hardware MKV playback-wise. (Of course they still don't support some niceties like WMA Lossless or, apart from HD Player Pro, full SSA subtitles - or, for that matter, AC3 / DTS support, which very few AppStore players support any more.)
Unfortunately, the switch to the Lightning adapter in the latest-gen iDevices has also delivered a lot of damage to XBMC, which, before the switch, delivered flawless 1080p output over wired connections - but it doesn't do any more.
Finally, 50p/60p videos getting lately pretty common has also made XBMC less desirable as it's completely incapable of playing back 1080p videos with more than 30 fps with any(!) frames rendered over 30 fps. Hardware players (AVPlayerHD etc.) don't have this problem.
You could really want to give a try to any (all?) of the following players, they're excellent (with different pros and cons - please consult my dedicated articles here at MR for more info, I've published tons of them):
- HD Player Pro
- It's Playing
This can't be emphasized enough...
Finally, don't forget: on both iPhones, iPod touch models and iPads, you will ALWAYS need the non-official Alpha7 release to properly output high-resolution video to AirPlay / wired displays – again, regardless of the connection type, let them be wireless AirPlay, the old 30-pin HDMI / VGA adapters or the new Lightning ones. If you don't need to do this and "only" have an iDevice that is not a Retina-screen iPad (currently, the iPad 3 and 4), you do NOT need to use this version. Then, you can safely stick with the official Cydia version; that is, currently, 12.1.
I've just posted a lot of XBMC-specific information, also elaborating on other players, in THIS, THIS and THIS MacRumors threads.
What about the iPad 4?
Everything I've stated about the iPhone 5 above applies to the iPad 4 as well (tested with iOS version 6.1.2):
- when using the app via the Lightning-HDMI adapter cable, the effective resolution is 1600*900, just like with the iPhone 5 – better than wireless AirPlay but, as has been explained above, definitely worse than the full 1080p resolution previously available with the old, 30-pin adapters.
- with the official (12.1) version, you'll have low (XGA-)resolution video playback both onscreen and on any kind of external display. This means you absolutely must get and use Alpha7 instead of the official version.
UPDATE (Apr/21/2013): I've re-made the benchmarks with the Elgato Game Capture HD, an RGB / HDMI capturer device, running the latest (Mac: 1.2.1) desktop software, using 1080p30 recording at the highest possible bitrate (30 Mbps). It's from these videos that I've grabbed some frames during the post processing.
My aim was to provide you with a much more reliable set of benchmarks. So far, I couldn't directly digitize HDMI signals, the digitizers being either very expensive or crippled by not supporting progressive recording at the maximal native resolution of iDevices' output, 1920*1080 (Full HD). This is why I needed to use a digicam previously. Of course, it in no way can provide as good reliability as directly accessing the output HDMI signal and grabbing frames from them. With the recent 1080p upgrade of the Elgato Game Capture HD, 1080p recording was finally added. (Previously, only the significantly lower-quality 1080i was possible.) Needless to say, I've bitten the bullet and purchased the thing. From now on, I'll have a much easier time at presenting high-quality screen recordings from all my devices.
First, a shot showing the digitizing and HDMI cable quality of the Elgato Game Capture HD while directly feeding the output of the resolution chart playback from my iPhone via the Lightning – HDMI adapter. I used hardware playback via the stock Videos player, which means it was the adaptor that did the decoding, not the iPhone. (Unlike with XBMC, which never utilizes the adapter's decoder, resulting in definitely lower image quality.) This means full quality – somehting impossible when the iDevice has to do the decoding, "thanks" to the limited throughput of the Lightning bus.
As with all images in this update, click the thumbnail for the original-sized, full (large) framegrabs. On the thumbnail, I used two red lines to denote the two (both vertical and horizontal) Nyquist thresholds (Nyquist frequencies) and blue to denote the point where the black (all the nine of them) and white (all the eight of them) lines no longer can be distinguished from one another. (Please see THIS for more info on how this all is to be assessed.) It's impossible to have better resolution than the former. It's, however, the latter is the one that shows the true performance of a given player / configuration.
In the above shot, the red and blue lines are at the same position as the effective resolution is the same as the maximal possible. As you can see, even the highest frequencies are properly rendered – there is no resolution drop.
Following is an additional shot showing the Elgato Game Capture HD setup I used for most of these resolution chart framegrabs. If you examine the info bubble on the right, you see I used 1080p30 recording with the maximal possible recording quality:
Now, let's examine the output results of XBMC.
Official (non-Retina / non-high res TV output) XBMC release
OK, let's go on with the offficial, non-Retina-enabled release of XBMC. Here's what it produces over cableless AirPlay, over the ATV:
Here is the (cabled) Lightning connection result:
As you can see, as it's the app's not supporting Retina resolution that severely reduces the effective resolution and not the transfer type (cabled vs. wireless), there's no measurable difference between the two results: both are equally bad. The effective resolution doesn't even come close to the native AirPlay resolution, let alone that of the Lightning adapter.
The recommended Alpha 7 results
As can be clear from above, if you plan to output your video to an external adapter, you must use the somewhat older Alpha 7 of XBMC, no matter what interface (wireless AirPlay; wired (new) Lightning or (old) HDMI / VGA adapters) you use.
First, the worse of the two, AirPlay:
Then, the (better) wired Lightning: