By Werner Ruotsalainen on Tue, 04/10/2012
In order not to have to update it much, I've been waiting for the (new) iPad (3) and postponing the publication of both updates of my previous major PDF reader / Web browser roundups and also new, iPad-specific articles like multimedia playback. Now that the iPad 3 is here, I, at last, start publishing all these articles, starting with the long-promised video player roundup.
Before it gets published (which will take at least a day or two, as I still want to add stuff like network share support and video output to external monitors / AirPlay clients), however, I publish a quick article comparing the
- Full HD (1080p) and Standard Definition (576p) MKV playback performance (please see THIS for more info on what MKV's are and why – mostly because of their ubiquity – I've chosen them for this kind of test)
- subtitle rendering (still in MKV containers), both Karaoke-like, styled (the much more complicated approach) and unstyled (the traditional, easy approach)
- the MP4 / MOV video playback performance difference of two, hardware-accelerated MKV playback-wise, leading applications
- deinterlacing performance of the two apps (currently) supporting it: GoodPlayer and XBMC.
Let's start with the former two bullets.
MKV playback performance; subtitle compatibility
In this test, I compare (almost?) every player available on the AppStore (and Cydia). I test both decoding performance and subtitle rendering.
The comparison videos below use the following name convention: right iPad (3rd gen) vs. left iPad (2nd gen). (Note that there is absolutely no playback efficiency difference between the two platforms – as opposed to, say, the difference between the first-generation iPad and the more recent ones. Therefore, the apps running on the iPad 2 are not handicapped by being run on the older model.)
In the vast majority of the videos (except for the initial two - It's Playing vs. EC Player -, which is separated into two parts), I show both benchmark / test videos in one demo video. (Again, the first part of the title is on the right, the second on the left.) The first part of the video shows playing back THIS “Monsters” demo video (Full HD high profile 4.1 H.264 (typical recompressed 1080p format) with dts audio and unstyled subs); the second part shows THIS (576p high profile 5.1 video with OGG Vorbis audio and both styled and unstyled subs). The first part is great for evaluating the (comparative and even quantitive) decoding performance of the given player (along with its unstyled MKV subtitle support), the second, along with its standard definition (SD) video decoding performance (which, being much less demanding than decoding full HD content, is pretty much the same with all players) and styled (animated etc.) SSA (Sub Station Alpha; see THIS) subtitle support. The latter is, while in high demand for anime fans, very rare on iOS because of the comparatively complemented decoding architecture needed. Actually, currently, only one(!) AppStore video player application has fully implemented its features.
HD MKV playback test - It's Playing by Addition, Lda 3.1 vs. EC Player 1.31: this demo shows It's Playing exhibiting some additional stuttering while playing back Full HD MKV's (or, for that matter, anything using the HW decoder), but, at least, it displays subtitles, unlike EC Player. The latter, while, in general, it delivers stutter-free video, shows hiccups due to the demuxing in the background (see e.g. 0:06, 0:17, 0:34).
SD SSA MKV playback test - It's Playing by Addition, Lda 3.1 vs. EC Player 1.31: this demo video shows both players rendering unstyled-only subtitles. Note that there are subtitles in EC Player's output as well, as I've used the Automatic (default) hardware acceleration setting, which only switches to HW acceleration with HD / Full HD videos, not SD ones – and this test video is “only” SD. With videos decoded using EC Player's built-in software codec, subtitles are also shown.
HD and SD SSA MKV playback test - ProPlayer 1.7 vs. TopPlayerHD 1.0.3: ProPlayer is certainly better at (software) decoding Full HD content (and showing the subtitle stream). Both fail at the SSA subtitle test.
HD and SD SSA MKV playback test - AcePlayer 1.07 vs. HD Player Pro 4.0: the Full HD part shows the “quality” of the software decoders of both apps (there's no HW decoder support for MKV files in these apps); the SD part shows HD Player Pro Is excellent at displaying styled SSA subtitles (notice the karaoke-like coloring animation!), while AcePlayer only shows them without any styles.
HD and SD SSA MKV playback test - Play Any Video Format - PlayerX HD 1.8 vs. OPlayer HD 2.0.01: PlayerX's Full HD decoder is really bad; OPlayer HD's codec is definitely faster (but, of course, nowhere as fast as hardware-assisted decoding). The SD part shows OPlayer HD displays the unstyled version of SAA text streams while PlayerX HD doesn't display anything. (Actually, the latter is so bad that it doesn't even display the Monster's unstyled text.)
HD and SD SSA MKV playback test - GPlayer 1.0.09 vs. BUZZ Player HD 3.0.0 : Gplayer has a slightly better Full HD codec; however, it doesn't display its subtitles. Subtitle-wise, BUZZ Player HD fails at displaying even the unstyled subtitle track in the karaoke video. Gplayer has a lead here – at least it displays the unstyled one.
HD and SD SSA MKV playback test - Movie Player – Plays any Video 2.0.2 vs. Azul Media Player - Video player for your iPad 3.5: the H.264 software decoder is absolutely useless in both players and it's only Azul that displays the subtitles in Monsters. Azul correctly parses the SSA subtitle stream in the SD test video but it doesn't animate it, unlike XBMC or HD Player Pro.
HD and SD SSA MKV playback test - AVPlayerHD 1.47 vs. eXPlayer HD 2.6: AVPlayerHD, which itself is one of the best overall players, has one of the best software H.264 decoders (of course, it's nowhere as good as that of the hardware.) eXPlayer HD's decoder is definitely worse. Both fail at the SSA test (unlike with the unstyled Monsters test, which both pass): AVPlayerHD doesn't display anything and eXPlayer HD, while it does display the unstyled streams, even crashes upon switching streams.)
HD and SD SSA MKV playback test - CineXPlayer – The best way to enjoy your Xvid movies 2.6.1 vs. RushPlayer 1.4.4: CineXPlayer can't play any of the test MKV's. RushPlayer uses hardware-assisted decoding; hence the great speed even at playing the Full HD Monsters video. It, however, fails the SSA subtitle test.
HD and SD SSA MKV playback test - VLC (AppStore version) vs. XBMC 11.0.0 : VLC is completely useless for playing back HD MKV's (so is the Cydia version), while XBMC is just great. The SD SSA test shows XBMC parses, shows and even animates SSA subtitles just great. VLC fails this test too.
Performance problems with It's Playing
In my previous article dedicated to high-res MKV playback, I've already mentioned that the player “It's Playing”, while is really powerful with features not found in any of the other iOS video players (for example, saturation change), has a major bug: even accelerated MP4 (MOV / M4V) playback is suffering from stuttering. The demo video below shows exactly this with the quickly scrolling Avatar starting scene. (The, in this regard, flawless GoodPlayer on the right, It's Playing on the left. Look for stuttering in the latter!) The test file is HERE.
(BTW, ever wondered how to extract parts of MP4 files to a new file for example for, like in this example, quickly creating a fast-scrolling benchmark file? It's very simple on the Mac. Get and install Quicktime Player 7. It'll install itself under Utilities / Quicktime Player 7 not overwriting the original, 10-series Quicktime Player in the root of Applications. Select the section to paste to a new file (click pause at the beginning of the section, Shift + click the timeline for the end), Cmd + C, File / New Player, Cmd + V, Cmd + S. Note that this functionality is not available in the stock Quicktime Player!)
In the article I've dedicated to deinterlacing video on iOS, I've explained this process may be quite CPU-tasking. With the latest XMPC jumping right from “Average” to the “One of the best” category, I've re-run the tests to find out whether the deinterlacing performance has been improved in it. As you can see in the next video, it is:
Ice Hockey (original) test interlaced DVB SD PAL video (XMPC on the left, as usual, running on the iPad 2, GoodPlayer on the right, on an iPad 3):
Sininen Laulu test video (original) with similarly fast-moving images on both sides:
Incidentally, the second video also shows dynamic aspect ratio change so common in DVB transport streams. (Here, it switches from 16:9 to 4:3.) Both GoodPlayer and XBMC are extremely well suited for DVB transport stream playback; among other things, they also track these kinds of changes and don't stick to the aspect ratio set at the very beginning of the file. Unfortunately, very few other players are capable of the same. (Incidentally, I don't recommend any other iOS players for DVB playback if you need support for positioning / multiple audio or subtitle tracks.)
I've also made a video comparing the current (4.9) version of GoodPlayer playing a fast-paced, interlaced video with and without deinterlacing. There are no dropped frames on the deinterlaced one, which means you can safely turn deinterlacing on if you hate the combing effect of interlaced videos. Assuming the, due to the increased CPU use, decreased battery life isn't a problem, of course.
The full chart of my forthcoming article
I've also made available the full feature / evaluation chart of my forthcoming article. It's available HERE as an OpenOffice Calc document. Feel free to comment on it! Note that the final version will contain even more rows (e.g., network shares, playback on external monitors / AirPlay receivers etc.)
UPDATE (later the same day): In the meantime, I've made an even better comparison of GoodPlayer (representing players that flawlessly play back MP4 files using the hardware decoder) and It's Playing. The original file is HERE; the comparison video is as follows:
GoodPlayer on the left, running on the iPad 2; It's Playing on the right, running on the iPad 3. The results speak for themselves: the playback under GoodPlayer is flawless, while it stutters under It's Playing.
As usual, there isn't any difference between the video playback on the two iPad models using the same players so the results would have been exactly the same with the opposite setup. Actually, the video HERE, linked from my previous article, shows It's Playing 1.30 on the iPad 2 playing back exactly the same intro with exactly the same slowdowns.
All in all: currently, I do NOT recommend It's Playing for any HD playback (low-res SD isn't this bad!) utilizing the hardware decoder.