AVPlayer(HD) & 1080p MKV users on older-than-two-year iDevices, attention!

Answering a question (link with more info & comparisons to OPlayer) regarding AVPlayer running on the iPhone 4 (released in Summer 2010), I've quickly tested the MKV playback in the player on my 4th-generation iPad touch (released in Autumn 2010) to find out whether the question is right. (After all, AVPlayer(HD) is probably THE most recommended generic video player, particularly for MKV playback.)

During this, I've noticed the player didn't use hardware acceleration for any of the Full HD (1080p) MKV videos, unlike on newer hardware (e.g., iPhone 5), where there is no such problem. This includes all my Full HD test MKV videos – for example, Monsters etc. (click the link for the freely deployable, testable video! More links to other standardized test videos below.)

I've continued testing to find out whether this is only an iPhone 4 / iPod touch 4-specific problem and found out that the iPad version of  AVPlayer is suffering from exactly the same problem.

However, 720p video (e.g., Harry Potter and Suzumiya) were played back flawlessly, with hardware acceleration. So did, of course, even lower-resolution videos.

After this, I've continued testing on even older, but still 1080p playback-capable hardware: the iPhone 3G S and the 3rd-gen iPod touch (not to be mistaken for the 2nd-gen, 8GB-only iPod touch sold up until Autumn/2010), both based on an even older CPU. The situation is the same: AVPlayer plays back MKV files up to 720p using hardware acceleration but not 1080p ones. While, again, the latter could certainly be possible (see below).

This seems to be a generic bug in both (small-screen and iPad) versions of AVPlayer running on 2009 and 2010 iOS models (iPhone 3GS and 4, iPod touch 3 and 4, iPad 1). These models, again, would all be able to play back 1080p videos (with the 2009 models, almost) flawlessly.

I'll immediately talk to the developers, who, hopefully, very soon release a fix.

In the meantime, just follow my advice below the screenshot.

(playback of the 1080p Monsters test video on the iPt4. Pay special attention to the red rectangle-annotated icon in the top left corner. It's enabled, meaning there's no hardware decoding. (It'd be passive during hardware-accelerated playback.) The same stands for the red and also-annotated 1.00X icon in the center right, showing the CPU just can't decode the video stream properly.)

The solution

Should you want to avoid reencoding your MKV files entirely by resizing them to, say, 720p (which can already be played back using hardware acceleration) or remuxing them to an iOS-native format (mp4 / mov / m4v), you will want to take a closer look at other hardware MKV players.

I've tested several of them on the iPt 4G and found out that BUZZ Player should be the one you check out, assuming your MKV's have an AAC audio track. (BUZZ can't play DTS or any Dolby formats.) It'll produce the best and most stuttering-free playback – 1080p videos look gorgeous and play almost stuttering-free even on the lowly, almost four-year-old iPhone 3GS. An example of such 1080p + AAC benchmarking videos is HERE ( kungfu-intro.mkv) – feel free to download it and test your players with it!

Unfortunately, the, otherwise, highly recommended It's Playing – employing half-hardware acceleration – just can't deliver acceptable speed on (CPU-wise) such slow hardware. CineXPlayer, PowerPlayer etc. are equally bad.

The fact that BUZZ Player requires AAC audio (when you rip a Blu-Ray disk, the result will most probably contain a DTS or an AC3 track (or their hi-def descendants) and never an AAC one) alone makes it a worse solution than AVPlayer. This also means you will need to convert your MKV files' audio to AAC. While it can be easily automated (with, say, MP4Tools) and is fast (compared to completely reencoding the entire video alongside the audio), it's still a separate conversion step you'll need to do.

I'll update the article as soon as I receive an answer from the developers.

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>