A few choices -
Transcode to mp4 -
http://handbrake.fr/
Or, in most cases, try remuxing first. Orders of magnitude faster than full (and, in most cases, absolutely unnecessary) transcoding done by HB. Just make sure you use the right tools (most importantly, Subler, or, if you don't remux many audio tracks, MP4Tools in addition). I've posted tons of tutorials here at the iPad and the ATV forums on remuxing.
Get OPlayer < the best mkv player I found, could even play 720p on my iPhone 4, everything else stuttered
Exactly what players did you try? Have you tried AVPlayer with no-more-than-720p videos? (For some reason, it doesn't dynamically remux 1080p videos on A4 CPU's, while it would certainly be possible. Will talk to the devs on the matter.)
1, OPlayer uses SW playback and has a definitely lower-quality H.264 decoder.
2, it's only at MPEG-2 playback that it excels at and is, generally, better than other players but MKV's generally have H.264 in them and not MPEG-2, unless it's a direct DVD rip (an example file I;ve created and published as a demo is at
https://dl.dropbox.com/u/13100693/html/042012RetinaHDVideoPlayers/lupaus-ads-orig.mkv - feel free to check it out if you want to know how an MPEG-2 MKV is played back.)
All in all, I in no way recommend OPlayer for H.264 MKV playback. I'm absolutely sure you haven't compared it to the best (and most recommended) players like AVPlayer. (More info on the pros and cons of the player is at
https://forums.macrumors.com/threads/1503808/ )
Nice idea. Unfortunately, Apple have absolutely silly restrictions regarding, among other things, video playback acceleration. Most other mobile operating systems (Android, WP8, Symbian) are far-far better in this respect (too).
EDIT: tested AVPlayer on old(er) hardware. My complete writeup is as follows:
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.