Choosing the Right MKV Player: Battery Drain and Hi10P Support

Matroska media containers are extremely popular among video freaks. They offer by far the most flexible video storage capabilities in many cases, such as for storing animated subtitles widely used in karaoke and anime. When you rip your own Blu-ray discs with the excellent MakeMKV, MKV is the container the app exports your disc to. 

One of my readers (question HERE; my initial answer HERE) asked me to elaborate on the power usage of the recommended MKV players.

At first, I had thought AppStore-based players would definitely have a handicap playing back MKV files in semi-hardware-accelerated mode because they would need to quickly cut and remux the MKV files in the background. (This is what I referred to in my initial answer.) The results I got have shown I was wrong: utilizing hardware accelerated playback directly on a jailbroken device, actually, resulted in some 50 percent more battery drain in my tests.

To get as reliable results as possible, I've used a two-hour-long movie for testing (The longer the better, as it emphasizes the differences between the players). For the test, I used the standard H.264 (non-Hi10P) conversion (using the Normal preset, default settings (Q=20, resulting in a file sized 1,504,815,241 bytes) with audio and subtitle pass-thru in Handbrake) of a Hi10P video ("Colorful").

The tests have all been done in exactly the same circumstances: on an iOS 6.1.2 iPhone 5 set to minimal brightness and auto brightness off (so that the screen's power usage is as low as possible to make it possible to better measure the power usage of the players themselves), keeping the iPhone in exactly the same position during the tests (no orientation changes occurred during playback). All the while I was in flight mode and after a reset before every playback, making sure nothing else ran. I made absolutely sure I started playback at 100 percent charge level.

The battery drain figures of the most current versions of the most important video players (also) capable of playing back MKV videos (with AppStore apps, semi-) hardware accelerated are as follows:


Master your iPhone in one minute a day:

Sign up to iPhone Life's Tip of the Day Newsletter and we'll send you a tip each day to save time and get the most out of your iPhone or iPad.

RushPlayer+ (basically free): 23 percent

nPlayer ($2.99): 15 percent

It's Playing ($3.99): 42 percent and 44 percent (tested twice, on both the previous (3.8.1) and the just-released (3.9) version)

XBMC 13 Alpha (free): (17/Feb): 18 percent

AVPlayer ($2.99):13 percent (useless image, though - so far, all(!) standard H.264-converted, originally Hi10P anime vids with SSA subs have turned out to be hardware-unplayable by AVPlayer)

HD Player Pro ($2.99): 12 percent

BUZZ Player ($3.99): 23 percent

IMPORTANT: in real life, the differences won't be this pronounced. After all, you won't watch your videos at minimal backlight (with the automatic brightness switch switched off). In addition, on the iPad 3 and 4, the CPU contributes even less to the overall battery drain, the screen backlight consuming a LOT of power even at the lowest brightness. Nevertheless, if you do want to prolong your battery life, it's still useful to know the battery drain of each player.

As you can see:

- the two jailbroken players, RushPlayer+ and XBMC, both have definitely higher battery drain as the top AppStore players; for example, RushPlayer+ consumed almost two times more power (23 percent) as the best-behaving player, HD Player Pro (12 percent).

-  HD Player Pro, which is, in addition to XBMC, the only player to have flawless SSA subtitle support (again, extremely important with karaoke / fansubbed anime videos), has turned out to be absolutely the best player with the least battery drain.

- AVPlayer, while draining little power, has turned out not to be able to play back any of these videos in hardware-accelerated mode. Most probably because of the SSA subtitles? I'll investigate the problem further. Before I find a solution, however, if you do want to use  AVPlayer(HD) for hardware-accelerated MKV playback and you see greenish screens, consider switching to another player. (You will NOT want to use the default software decoding for the reasons explained in the next section.)

- the otherwise excellent It's Playing isn't a true battery life champion – using it has resulted in almost four times more (!) battery drain (42 percent and 44 percent vs. 12 percent) than HD Player Pro. This means you won't want to use it for MKV playback if battery life is of extreme importance for you - unless you absolutely need the (excellent) DSP's (brightness / volume / saturation boosting) it offers. In addition, unfortunately, its SSA support is very weak – even non-animated SSA tracks (with other videos) were decoded / shown in a wrong way.

- nPlayer has still excellent power saving (15 percent) and, therefore, remains a highly recommended generic player for MKV too.

What About Software-Only Playback?

Above, when discussing AVPlayer (and in several of my past articles), I've already mentioned you'll always want to avoid software-decoded playback even on the latest, fastest, A6(X)-powered hardware (the iPhone 5 and the iPad 4). After all, this is why a lot of developers try to add hardware MKV (and, in some cases, AVI) playback in their players.

Why? Not only because playing back 1080p videos using the CPU is pretty much pushing it to its limits, often resulting in stuttering video, even on the latest-and-fastest iPad 4 / iPhone 5 using the A6(X)  CPU. (Earlier / slower models, including the iPad mini, are based on the considerably slower and totally 1080p-incapable A5(X) CPU.)

Unfortunately, running computationally intensive apps on a CPU will always result in excessive power drain. To measure this, I benchmarked the same 2-hour video with nPlayer, which has approximately the same H.264 video decoder as other top players. In the player, I disabled hardware acceleration – that is, I decoded the 1080p video entirely in software (using the CPU).

The results? The player chewed through the battery really fast: the battery usage was no less than 73%; that is, about five times(!) higher than when using HW acceleration.

All in all, whenever possible, stick with hardware playback. This is, unfortunately, not possible with MKV's with VC-1 video tracks in it. Several even current Blu-ray discs have video in VC-1; for example, the original international version of Red Cliff (Amazon link); a freely available test file is HERE as part of the official MKV test suite. Another very common (and hardware-unplayable) format is H.264 too – but a special version of it, Hi10P. See the last section for more info on it.

When to Stick with Jailbroken Players?

As I've explained in several of my articles (for example, in my UPnP bible), AppStore players needing to rely on background remuxing can't play back MKV's from network sources using hardware acceleration, unlike the jailbroken  RushPlayer+ and XBMC.

The only exception to this rule is It's Playing, which has just, as of the just-released version 3.9, added (see THIS) flawless SMB streaming support and is able to use hardware acceleration during MKV playback.

Hi10P Playback

In the “What about software-only playback?” section, I've already mentioned Hi10P playback. Hi10P  is the preferred format of, among others, the anime fansub scene because of its superior video quality and considerably less file size. This, however, means considerably more CPU power is needed to decode (play) it.

Unfortunately, currently, there is not any hardware playback support for Hi10P on any mobile platforms and, on the desktop, at least a C2D CPU  is needed (see THIS) to properly decode a Full HD (1080p) Hi10P video.  This means you can just forget playing back 1080p Hi10P video on any iOS hardware. Even the fastest iPhone 5 / iPad 4 can only play back 720p Hi10P video.

For this, I recommend HD Player Pro, It's Playing, nPlayer or AVPlayerHD. They all deliver usable results on the  iPhone 5 / iPad 4 with the test 720p video HERE. (Note that, should you want to also render the extended SSA subtitles (in the test video, between 01:06 and 02:17), you'll want to use HD Player Pro of the bunch.)

As before (see my previous articles), I do not recommend (the, otherwise, excellent and in many respects best) GoodPlayer for any kind of hi-res H.264 decoding. Not even the latest (current) version is able to decode Hi10P (and "basic" H.264) as adequately as the above-recommended titles.

XBMC is also a no-go. You will not want to use it – its H.264 decoder, while not as slow as that of  GoodPlayer, is still certainly slower than that of the above-recommended players.

Again, don't forget: playing back Hi10P can only be done in software, which means

- It's Playing will also be on the “most recommended” list, unlike with hardware MKV playback (where you, as has been pointed out above, will only want to use it if you need its absolutely unique DSP capabilities)

- you may need to manually disable hardware acceleration in some other players not (properly) recognizing the video track of the MKV file to be a hardware-unplayable Hi10P one. Otherwise, the player will either not play back anything or the colors will be off as can be seen in the RushPlayer+ screenshot below:


(The situation is the same with the AppStore RushPlayer. There, however, disabling HW acceleration results in an immediate crash.)

Master your iPhone in one minute a day: Sign up here to get our FREE Tip of the Day delivered right to your inbox.

<p>Werner Ruotsalainen is an iOS and Java programming lecturer who is well-versed in programming, hacking, operating systems, and programming languages. Werner tries to generate unique articles on subjects not widely discussed. Some of his articles are highly technical and are intended for other programmers and coders.</p>
<p>Werner also is interested in photography and videography. He is a frequent contributor to not only mobile and computing publications, but also photo and video forums. He loves swimming, skiing, going to the gym, and using his iPads. English is one of several languages he speaks.</p>