UPDATE (11/Oct/2012):HERE, I've reported on the brand new (1.7) version's vastly reduced MKV hardware playback compliance now that AC-3 support had to be removed from the player. Please read it so that you can know when to use the new version for MKV playback and when not. (Generally, not for anything Full HD and containing AC-3 audio tracks.)

Original article:

As I've explained in several of my articles (see for example THIS), the easiest way to rip your own DVD's or Blue Ray discs (which is legal in several countries, particularly here in the EU) is using the free MakeMKV. MKV is the most advanced and versatile container format; this is why, among other tools, MakeMKV also rips discs into MKV's and not to, say, Apple's own MP4 / M4V / MOV files.

This, however, causes major problems on the iOS platform, where Apple have deliberately made it impossible to use hardware acceleration for any container (=file) other than MP4 / M4V / MOV in any AppStore app (but not in jailbroken ones: both XBMC and RushPlayer+, both available in Cydia, use hardware acceleration with MKV files and have, therefore, no problems). This means if you plan to play back Full HD (1920*1080) videos, all you'll encounter stuttering, useless video and, in most cases, also audio playback.

Several AppStore players have been released to fix the problem in the following way: they quickly re-pack ("remux" as is usually referred to) the MKV files into MP4 (M4V / MOV) files in the background, in, based on the player, 10...400 Mbyte chunks, and pass these files to the hardware accelerator. (If the MKV has an iOS-incompatible audio track like DTS or AC3, they convert it to AAC and put the converted version in the target file.)

Unfortunately, this behind-the-scenes, runtime, chunk-based repacking does introduce problems, from which the two initial players supporting this kind of playback, EC Player and RushPlayer (notice the lack of the + sign - now, I'm speaking of the AppStore version, not the enchanced and much better Cydia one), suffered a lot: cyclic freezes every about 10-15 second. Players released or updated to runtime remuxing later have already a much better algorithm: I've found both It's Playing and BUZZ Player (on these, please see THIS) excellent at playing back MKV videos with different strengths (and problems, as both have some problems still).

The GoodPlayer (an excellent and highly recommended all-in-one media player) developers have just joined the party of enhanced MKV players with a brand new app, PowerPlayer (AppStore link; Universal, $2.99):

(main file list)

Needless to say, I've very thoroughly tested it and discussed the results with the developers.

Is it recommended?

Your first question is surely the following: should you prefer it to the It's Playing / BUZZ Playerduo? (Or, of course, the XBMC / RushPlayer+ one, if you do jailbreak?)

In a word: not yet. Unfortunately, it stutters clearly a lot more than It's Playing, let alone the absolutely fluent (but ruined by the DTS bug) BUZZ Player. That is, for the time being, stick with these two apps (or, of course, with XBMC / RushPlayer+ if you jailbreak). Nevertheless, as I'm discussing all these issues with the developer very closely and, therefore, know what's happening to the player and how it's enhanced, I'll post updates when the player becomes worth preferring to the just-listed ones. As I know these folks are excellent iOS coders, I'm absolutely sure they'll be able to come up with something much more efficient.

Benchmark videos

As usual, I've made demo videos showing bothPowerPlayer (as of version 1.0) and that of It's Playing (also the current, 3.5 version) in action so that you can see the difference between the playback quality, stuttering etc. I haven't done the same with BUZZ Player as the first test video contains a DTS track and, therefore, can't be played using the hardware decoder (a very bad bug of the current version of BUZZ Player) and the second test video, as it only has one AAC (and not DTS) track, plays back flawlessly.

You can clearly see that PowerPlayer stutters far more badly as It's Playing. Generally, the latter "only" throws 17% of the frames away of a video with a DTS audio track (you can easily check this figure by tapping the "i" icon after playing and checking out the "Playback reliability" row in the "Video" section); PowerPlayer a lot more. The test videos were an one-minute part of "Sex in the city" (video: 11.6 Mbps, 23.976 fps, High@L4.1, with CABAC and 4 frames ReFrames, 4:2:0 Chroma subsampling and the bit depth of 8 bits; audio: DTS 1536K 5.1 (From TrueHD), 24 bit/48 kHz) and the MKV version of my traditional Kung Fu intro, where any kind of stuttering / dropped frame can very easily be spotted.

(It's Playing)

PowerPlayer; note that this video is a bit out of focus; however, the definitely lower framerate can still be clearly seen.

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