PDA

View Full Version : Choosing the Right MKV Player: Battery Drain and Hi10P Support




Menneisyys2
Feb 23, 2013, 10:31 AM
One of my readers (question HERE (http://forums.macrumors.com/showpost.php?p=16858089&postcount=2); my initial answer HERE (http://forums.macrumors.com/showpost.php?p=16860930&postcount=3)) asked me to elaborate on the power usage of the recommended MKV players. (MKV containers offer in many cases by far the most flexible video storage capabilities; for example, when trying to store animated subtitles very 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. This is why it's so popular among video freaks.)

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 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% 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.

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 this in flight mode and after a reset before every playback, making sure nothing else ran. I made absolutely sure I started playback at 100% 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:

RushPlayer+: 23%
nPlayer: 15%
It's Playing: 42% and 44% (tested twice, on both the previous (3.8.1) and the just-released (3.9) version)
XBMC 13Alpha (17/Feb): 18%
AVPlayer: 13% (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: 12%
BUZZ Player.: 23%

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%) as the best-behaving player, HD Player Pro (12%).

- 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% and 44% vs. 12%) 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%) 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 (http://www.amazon.com/Red-Cliff-International-Version-Part/dp/B0030A6ICG)); a freely available test file is HERE (http://www.auby.no/files/video_tests/vc1_1080p_ap_l3_18mbps_ac3_hddvd.mkv) 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 stick with jailbroken players?

As I've explained in several of my articles (for example, in my UPnP bible (http://forums.macrumors.com/showthread.php?t=1503346)), 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 (http://forums.macrumors.com/showthread.php?t=1547658)) 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 (http://wiki.xbmc.org/index.php?title=Hi10P)) 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 (https://dl.dropbox.com/u/81986513/022013/hi10p/Da_Capo_III_test-Hi10.mkv). (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:

https://dl.dropbox.com/u/81986513/022013/hi10p/RushPlayerPlusHi10PHW.jpg

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



Davidkoh
Feb 24, 2013, 09:39 AM
What player would you say is recommended if I want to have 1 player that can support the following:

- MP4 files
- .MKV files (H.264 - MPEG 4) with AC3 or DTS sound (may be both)
- Subtitles for the MKVs
- All of the above in either 720p/1080p.

If there is no such player I guess my other option is to convert the files, which player do you recommend then and which converter?

Menneisyys2
Feb 24, 2013, 09:43 AM
What player would you say is recommended if I want to have 1 player that can support the following:

- MP4 files
- .MKV files (H.264 - MPEG 4) with AC3 or DTS sound (may be both)
- Subtitles for the MKVs
- All of the above in either 720p/1080p.

If there is no such player I guess my other option is to convert the files, which player do you recommend then and which converter?

Subtitles for the MKVs - if they aren't SSA ones (Karaoke), then, AVPlayerHD. If they're SSA, you'll need to convert the AC3 audio to AAC so that HD Player Pro can play the audio back. HD Player Pro is the only (non-jailbroken) player to render SSA subs.

There are several solutions for AC3 -> AAC conversion while keeping MKV's. Let me know if you prefer going this way and I dig up my earlier tutorials written up on this subject.

Davidkoh
Feb 24, 2013, 09:49 AM
Subtitles for the MKVs - if they aren't SSA ones (Karaoke), then, AVPlayerHD. If they're SSA, you'll need to convert the AC3 audio to AAC so that HD Player Pro can play the audio back. HD Player Pro is the only (non-jailbroken) player to render SSA subs.

There are several solutions for AC3 -> AAC conversion while keeping MKV's. Let me know if you prefer going this way and I dig up my earlier tutorials written up on this subject.

Subtitles is most likely the least important part so lets ignore them.

Do either of these players work with DTS as I've got both DTS and AC3 sound.

Menneisyys2
Feb 24, 2013, 09:52 AM
Subtitles is most likely the least important part so lets ignore them.

Do either of these players work with DTS as I've got both DTS and AC3 sound.

Regarding hardware MKV playback-capable players (which rules out the brand new MPlayer - see the just-pubished article on it if interested: http://forums.macrumors.com/showthread.php?t=1547870 ), only AVPlayerHD supports AC3 out of the box. (Many players support DTS.) That is, if you don't plan to change the audio format manually, go for AVPlayerHD.

However, if you're jailbroken, RushPlayer+ (and, in some cases, XBMC) may be better alternatives. (Free, HW MKV support, AC3 + DTS etc.)

Davidkoh
Feb 24, 2013, 09:58 AM
Regarding hardware MKV playback-capable players (which rules out the brand new MPlayer - see the just-pubished article on it if interested: http://forums.macrumors.com/showthread.php?t=1547870 ), only AVPlayerHD supports AC3 out of the box. (Many players support DTS.) That is, if you don't plan to change the audio format manually, go for AVPlayerHD.

However, if you're jailbroken, RushPlayer+ (and, in some cases, XBMC) may be better alternatives. (Free, HW MKV support, AC3 + DTS etc.)

I am not jailbroken and got an iPad 4, will AVPlayerHD play 1080p MKVs or would that require me to convert to MP4?

If I would want to convert my MKVs to MP4 (to keep size down among other things) do you have a recommendation for a conversion tool? I guess AVPlayerHD would work for MP4 files too so if I have a mix of converted and non converted ones AVPlayerHD can be my only player.

Menneisyys2
Feb 24, 2013, 10:15 AM
I am not jailbroken and got an iPad 4, will AVPlayerHD play 1080p MKVs

It will. Just make sure you enable hardware acceleration to lower battery drain.

If I would want to convert my MKVs to MP4 (to keep size down among other things) do you have a recommendation for a conversion tool? I guess AVPlayerHD would work for MP4 files too so if I have a mix of converted and non converted ones AVPlayerHD can be my only player.

Basically, there are two kinds of mkv -> mp4 conversion:

- to reduce size (requires a complete, lengthy reencode) AND make the file iOS-native (see below)

- or "only" to make the file iOS-native, that is, directly playable by most players, including the stock "Videos" player - in hardware. This is called "remuxing" and, with the right tools (most importantly, "Subler") is orders of magnitude faster than reencoding (first bullet above).

If you don't need any of these (because, say, AVPlayerHD plays your MKV's back just fine), then, I wouldn't bother with reencoding / remuxing.

Davidkoh
Feb 24, 2013, 10:20 AM
It will. Just make sure you enable hardware acceleration to lower battery drain.



Basically, there are two kinds of mkv -> mp4 conversion:

- to reduce size (requires a complete, lengthy reencode) AND make the file iOS-native (see below)

- or "only" to make the file iOS-native, that is, directly playable by most players, including the stock "Videos" player - in hardware. This is called "remuxing" and, with the right tools (most importantly, "Subler") is orders of magnitude faster than reencoding (first bullet above).

If you don't need any of these (because, say, AVPlayerHD plays your MKV's back just fine), then, I wouldn't bother with reencoding / remuxing.

Thanks for all the help, think I'll get AVPlayerHD and try it out. Just a last question though regarding converting to MP4. Say that I would like to have a tool that can reencode my MKVs to MP4 (to change size) for those longer travels where storage might be an issue AND make the file iOS native, what would be a good convert, I have used Handbrake before and is just wondering if that one is making it iOS native or not or if there are tools considerably quicker?

Menneisyys2
Feb 24, 2013, 10:25 AM
Thanks for all the help, think I'll get AVPlayerHD and try it out. Just a last question though regarding converting to MP4. Say that I would like to have a tool that can reencode my MKVs to MP4 (to change size) for those longer travels where storage might be an issue AND make the file iOS native, what would be a good convert, I have used Handbrake before and is just wondering if that one is making it iOS native or not or if there are tools considerably quicker?

HandBrake is the best. Don't even consider trying other converters (particularly not paid ones): I've benchmarked tons of video converters and HandBrake has repeatedly turned out to be the fastest of them.

(Beware, this forum is also full of gerilla marketers - mostly new nicks - recommending paid and absolutely trash converters, mostly from China. Do NOT fall prey to them!)

Davidkoh
Feb 24, 2013, 10:35 AM
HandBrake is the best. Don't even consider trying other converters (particularly not paid ones): I've benchmarked tons of video converters and HandBrake has repeatedly turned out to be the fastest of them.

(Beware, this forum is also full of gerilla marketers - mostly new nicks - recommending paid and absolutely trash converters, mostly from China. Do NOT fall prey to them!)

Great to hear! Thanks again for all the help!

Menneisyys2
Feb 26, 2013, 03:53 PM
Updated the original article with the latest SMB + It's Playing info and some other adjustments.

retroneo
Feb 26, 2013, 04:50 PM
HandBrake is the best. Don't even consider trying other converters (particularly not paid ones): I've benchmarked tons of video converters and HandBrake has repeatedly turned out to be the fastest of them.

Smart Converter is free in the Mac App Store, is super simple, and just repackages where necessary rather than re-encodes - so it can be very fast (takes seconds) when converting some H.264 MKVs.

I recommend it over handbrake.

https://itunes.apple.com/au/app/smart-converter/id447513724?mt=12

Menneisyys2
Feb 26, 2013, 05:45 PM
Smart Converter is free in the Mac App Store, is super simple, and just repackages where necessary rather than re-encodes - so it can be very fast (takes seconds) when converting some H.264 MKVs.

I recommend it over handbrake.

https://itunes.apple.com/au/app/smart-converter/id447513724?mt=12

Sure, as a generic converter for people that don't want to decide whether a particular file can be remuxed (and accordingly use Subler / MP4Tools instead of HB), it's OK. However, it's still somewhat (about 20%, according to my benchmarks) slower than HandBrake, should it entirely reencode the video - and has a tendency to mess up subtitle tracks.

Menneisyys2
Dec 10, 2013, 04:58 PM
A new version of RushPlayer+ has just been released. See my report at http://forums.macrumors.com/showthread.php?t=1683047