So far, I've preferred using my high-end 17” Macbook Pro for watching full HD (1920*1080) videos as the screen is able to natively, without downsizing the picture, play back the content. With the new, high-resolution, Retina iPad, playing back even Full HD video has become much more desirable than even on a high-end Macbook Pro: far better screen quality (vastly superior IPS technology vs. TN film, even if the latter is of pretty good quality), no fan noise, no need to connect it to the wall plug (playing back even the most demanding 1080p H.264 videos at max brightness only decreases battery charge by about 18% an hour and doesn't really heat up the iPad 3), mobility, no annoying overheating etc. Consequently, I've devoted quite much time to find out the best solution for playing back HD video in as good quality as possible.
First of all, this article mostly discusses playing back non-iTunes Store videos. Why? If you purchase / rent a video from the iTunes store, you won't run into problems playing it back on your iPad: it automatically downloads and plays back without visual hiccups, stuttering, with accessible subtitles (closed captions).
High-resolution videos from other sources, however, are a different question. (And you WILL need to, say, rip your own BlueRay discs from time to time as, for example, the HD version of Avatar is still not accessible, not even for renting, in the iTunes store. The possibly better quality of widely used encoders like the X264 is another question – you might want to check out THIS article for more info on the comparatively lower quality of Apple's Full HD encoder.)
In the following, I assume your videos aren't using the MP4 / MV4 / MOV extension (for example, video files prodoced by most current Nikon cameras). These movies are, in most cases, compatible with the built-in “Videos” player of iDevices and require no special apps or pre-processing: you just drag the video into the “Movies” tab of your desktop iTunes, wait for it to be copied to the inner library, connect your iDevice to iTunes and, in the “Movies” tab of your iDevice, select the movie to be synchronized (if selection is manual). Then, after conducting at least one synchronization, just fire up Videos on the iDevice and tap the video to play it back.
Most videos you'll run into (or you'll want to rip your BlueRay discs into) are MKV files, which is, currently, by far the most popular container format to store videos in. MKV files, in general, contain either stereo (which is our, iDevice users', friend) or multichannel (which isn't exactly our friend, see below) audio and, in most cases, H.264 video. The latter is also directly playable by the iDevice hardware, even the most sophisticated forms of it. (Not counting here the relatively new H.264 Hi10p format (also see THIS), which isn't widely supported on iDevices. Almost everything else works just fine.)
In the following, I assume you need to play back MKV files with H.264 video content in them (99% of the cases) and incompatible multichannel audio (70-80% of the cases), probably with additional subtitles.
If you can pre-process your videos and/or can't/don't want to jailbreak...
Then, I recommend GoodPlayer (AppStore) the most. It's only $2.99 and it has a huge arsenal of pretty effective software decoders. (They're, of course, useless at 1080p, but at 720p and below, I've found them the best.) In addition, it has a lot of other goodies like deinterlacing, audio level boosting (a must with the comparatively quiet iPad) etc.
With GoodPlayer, pre-processing your videos is comparatively easy: a lengthy, say, high quality 3-hour 1080p video taking up 20 Gbytes can be pre-processed in 5-20 minutes (depending on the desktop you use for the process), which is at least an order of magnitude less than re-encoding the video with, say, the popular video encoder tool “HandBrake”. The latter, in addition, also means unavoidable video quality degradation.
Pre-processing is comparatively easy: as is explained in my previous, dedicated article, if you don't need any subtitles, you'll only need to use the free “avidemux” tool. You supply it the input MKV file, set the output file to be of type MP4 and also remix the audio to be stereo. (The latter is very important, as traditional DTS and AC3 audio, in general, results in no audio being heard on iDevices, except in jailbroken ones – see XBMC below.) The container (MKV-to-MP4) and audio (multichannel-to-stereo) conversion will be done in, at most, the tenth of the original runtime of the video.
If you also need subtitles, you'll also need iMkvExtract to exact (only) the subtitles, Subler to insert them in the mp4 file and, possibly, Jubler to convert them into SRT (if all the subtitles the MKV file has are SSA (Sub Station Alpha) subtitles, which are incompatible with Subler) before using Subler. Let me know if you need more info on this. (Generally, my previous iMkvExtract + Subler tutorial will just suffice.)
After you got your mp4/m4v (you can use both extensions) video, just transfer it to GoodPlayer via iTunes and you're set. (You can give the stock Videos a try – synchronizing via the traditional Movies tab in iTunes -, but you will surely run into cases when it just refuses to transfer otherwise fully compatible videos onto your iDevice. Therefore, I prefer going straight for GoodPlayer). Play the video back as a standard video in GoodPlayer. Just make sure you enable hardware decoding (Settings / Plugin Setting / iPod). (If you forget to do this, your 1080p videos will be played back at about one frame per second.)
If your iDevice is jailbroken and/or don't want to waste time with pre-processing every single video and/or don't want to pay for your apps
(This section, for the time being, doesn't apply to the new (third-generation) iPad as, currently, there isn't a way of jailbreaking it. However, if you're still on a previous-generation iPad, the following section will be of tremendous help.)
Then, your best choice will be XBMC. It's capable of playing back absolutely everything at the original speed. The current version, v11, has been released about two weeks ago, and man: it's WAAAAY better than the old one I wasn't particularly fond of. (See my dedicated articles on the old version.) It's absolutely beautiful, really powerful and compatible with even the scarcest video, audio and subtitle codecs, including multichannel audio. The latter means you can not only play back your hi-res MKV files directly in XBMC without going through the conversion process outlined in the previous section, but also don't need to remix the audio of the file to be stereo so that it's played back.
Again, if you have jailbroken your iDevice, go give the new 11-series XBMC a try, you'll LOVE it, it's simply fantastic!
If none of the above applies
If you can't or don't want to jailbreak and you don't want to pre-process your MKV files either, you'll want to go for EC Player ($3) – it's my personal choice for playing back MKV files. It's not as powerful as XBMC and you WILL encounter stuttering every now and then but, still, it's the fastest native, non-jailbroken MKV player I could find. (I've thoroughly examined a lot of them.)
Again and again, I can't stress enough the importance of considering the first two approaches (either converting to MP4 and playing back via GoodPlayer or jailbreaking and installing the extremely nice and efficient XBMC). Natively playing back MKV files simply can't be done with current AppStore apps without visible problems (stuttering, missing subtitles etc.).
Bugfixing tips for (future) EC Player users:
EC Player isn't exactly stable. If, in the list view, it encounters a file it can play back but, in that particular view, can't parse, it won't process anything else on the list. For example, while it can play back OGG files (a container also used for videos – see for example the Buck Bunny OGG test videos HERE for some examples), it can't process them in the list view. This means it won't play back your H.264 (Full) HD videos using hardware acceleration either; you won't be able to select subtitle or audio tracks in titles below the (first) OGG title in the list etc.
Also, if you transfer a video via iTunes that is fully incompatible with EC Player, it'll exit as soon as you start the app. (An example of these videos is THIS. It's a VC file inside an MKV container. EC Player is fully incompatible with VC video files.) Currently, if you want to avoid having to reinstall the entire app, you'll need to manually delete (move to somewhere else) the /Library/Preferences/com.int3.ecplayer.plist file. If you're jailbroken, use iFile for the deletion (but, on a jailbroken device, I don't see much point in using any other player for playing back Full HD than XBMC); if not, use iExplorer or Phone Disk when connected to a desktop and move(!) the file to, say, the /Document directory. (Moving is permitted, deletion isn't; hence the need for moving.) Hopefully the developer adds a “delete config file” menu item as a system-level app setting accessible without starting the app, as has been recommended by me.
I've discussed all these problems with the developer of the app and he's aware of all the issues I've explained. Hope all these issues will be fixed in the near future.
The GUI also has some illogical features. For example, it's not inside playing a video that you can change subtitle or audio tracks but in the list view of the available titles, accessible via the pencil icon.
Speaking of subtitles: if your MKV files have subtitles, there's a chance you won't see them in EC Player. Then, you might either want to switch to, say, It's Playing ($4; AppStore) or reconsider converting your MKV files to MP4 ones (see the first bullet) and, that way, getting rid of all these problems. (Speaking of It's Playing, it's a VERY decent and featureful app also offering hardware accelerated playback. Unfortunately, in all my full HD tests, it proved to be somewhat slower than EC Player – the video pretty annoyingly stutters. Therefore, while It's Playing is vastly superior in every other respects to EC Player, I still recommend the latter for pure MKV playback because of the better performance. You just need to learn to read with its bugs and, currently, illogical interface.)
As usual, feel free to ask for further questions in the Comments section below if you can't make your MKV files playing or converted.
UPDATE (later, the same day): Full HD video playback app RushPlayer + demo videos
One of my readers, Özgün Can Özgüneş (see the comments below), asked me about RushPlayer (AppStore link; $3 (note that there's also a lite version, which I haven't tested)) so I've quickly purchased it, along with another product, Mkv2mp4, of the same developer, which – at least theoretically – makes it possible to do the entire conversion on the iDevice and fully automatically (no need to play with avidemux and, if you also need subtitles, iMkvExtract + Subler (and possibly Jubler)). First, I elaborate on these apps and, then, I provide some brand new comparative videos showing every app I've compared playing back MKV and MP4 files.
RushPlayer
Unfortunately, RushPlayer (current - and on both the iPad 2 and 3, tested - version: 1.4.4) is suffering from the same major problem as EC Player (1.31): as both apps demux (extract part of) the video in the background, there is a pause at every 10-20 seconds when a new part is starting to be played.
With EC Player, I consider this a lesser problem than with RushPlayer; on the latter, there is a VERY annoying quick switch, during which the entire screen gets dark. On the EC Player, the video playback “only” freezes for a moment (the audio is still playing during this), which is, visually, far less annoying.
As both apps use the built-in H.264 decoder of the iDevice and they don't apply additional signal processing (unlike, say, It's Playing 3.0, which clearly has speed problems because of them), the playback speed of the two apps is the same.
However, RushPlayer at least doesn't have problems displaying subs, unlike EC Player; this is definitely a plus.
All in all, I can only recommend these apps if you really can't pre-process your MKV videos on your desktop computer or can't / don't want to jailbreak so that you can use XBMC for native (and absolutely flawless) MKV playback. The hiccups and pauses are really a pain in the back.
Mkv2mp4
I've also thoroughly tested “Mkv2mp4” from the same developer as that of RushPlayer. Unfortunately, I in no way can recommend it. It could only remux only one (h264_720p_mp_3.1_3mbps_aac_shrinkage.mkv) of the numerous test MKV videos (I use all the standardized test MKV videos accessible HERE): one that already had AAC audio (and no subtitles). The other test videos resulted in the following:
264_1080p_hp_4.1_40mbps_birds.mkv (no audio!): progress indicator quickly flashes but the app doesn't, then, convert
vc1_1080p_ap_l3_18mbps_ac3_hddvd.mkv: nothing happens
h264_1080p_hp_4.1_10mbps_dts_unstyled_subs_monsters.mkv : stays at 0%
h264_720p_hp_5.1_3mbps_vorbis_styled_and_unstyled_subs_suzumiya.mkv : stays at 0%
xvid_480p_as_l5_1mbps_he-aac_foreign_subs_matrix.mkv: nothing happens
h264_720p_hp_3.1_600kbps_aac_mp3_dual_audio_harry_potter: -. The first audio track is converted to static noise; the second results in a crash at either transcoding or playing time. (The resulting file of the second is useless)
h264_720p_hp_5.1_6mbps_ac3_unstyled_subs_planet.mkv: stays at 0%
Note that almost every of them could be reliably converted (along with subtitle migration) with the desktop-side conversion tools.
All in all, stay away from Mkv2mp4, at least for the time being. It's just plain incompatible with a lot of audio / subtitle formats, unlike the desktop (de)muxer tools (avidemux for MKV -> MP4 conversion and audio recoding; iMkvExtract + Subler (+ Jubler) for subtitle migration).
Demo videos (iPad 2 on the left, iPad 3 on the right):
EC Player 1.31 (iPad 3) vs RushPlayer 1.4.4 (iPad 2; default 30s stepping); Monsters MKV : This video clearly shows the inherent problems with MKV playback from both EC Player and RushPlayer: the image freezes (see e.g. 0:12, 0:26, 0:36, 0:53) with the former and momentary blackouts (see e.g. 0:38, 0:54) with the latter. The Monsters standardized test video can be downloaded from HERE.
RushPlayer 1.4.4 on iPad 2 vs. iPad 3; 2: 300s stepping; 3: default 30s; Monsters MKV : This video compares the effects of changing the “stepping” setting in RushPlayer. As you can see, the number and frequency of blockouts aren't affected by the setting.
XBMC 11.0.0 (iPad 2) vs RushPlayer 1.4.4 (iPad 3; 300s); Monsters MKV : this demo clearly shows the superiority of XBMC to RushPlayer (or other MKV players): its playback is absolutely flawless, while RushPlayer (on the right) has blackouts (at e.g. 0:21, 0:37, 0:55).
EC Player 1.31 (iPad 3) vs GoodPlayer 4.9 (iPad2; SW decoding only in the latter); Monsters MKV : a demo showing how slow the software MKV decoding in GoodPlayer (and, in general, in all players) is compared to hardware decoding. This is why you simply can't use players that only rely on software decoding to play back high-resolution content, as opposed to low(er)-resolution videos.
It's Playing 3.0 (iPad 2) vs EC Player 1.31 (iPad 3); Monsters MKV : this video clearly shows why I don't recommend It's Playing (at least in its current version, 3.0) for 1080p playback: its video playback is stuttering all the time. (However, it doesn't exhibit video freezes every 10-15 second. Nevertheless, I consider constant stuttering far more annoying than a freeze now and then so I still recommend EC Player over It's Playing.)
EC Player 1.31 on iPad 2 vs. iPad 3; Monsters MKV : a video showing MKV playback in EC Player on both the iPad 2 and iPad 3. As you can see, there's no performance difference. (As there's absolutely no difference in playback quality / speed with any of the other, tested video players either.)
It's Playing 3.0 (iPad 2; KungFu 1080p) vs. GoodPlayer 4.9 (iPad 3; Avatar 1080p) : finally, a video showing the playback of pre-processed and iPod plug-in friendly MP4 files (so far, I've only shown MKV files) in It's Playing 3.0 and GoodPlayer. As you can see, It's Playing delivers a much more stuttering video than the (now, with MP4 files) absolutely flawless GoodPlayer. All in all, It's Playing isn't recommended for MP4 playback either.
UPDATE (04/10/2012): new, related article HERE.
UPDATE (05/26/2012): a review of the brand new and recommended It's Playing-version, with links to other articles I've written in the meantime, is HERE. Of the new articles, I recommend the one on MKV remuxing.