I've been asked by several of my readers to post a detailed review of, along with It's Playing and GoodPlayer, the best generic iOS media player, AVPlayer(HD). Below, I provide you with a video / audio / subtitle / container type-dependent list of pros and cons so that you can see whether the player does fulfill your needs or not. While AVPlayer is truly an amazing player, there are some things it's entirely incapable of or where some of the alternatives are considerably better. It's based on this list that you will want to decide whether the player is for you or not, at least when it comes playing back some specific multimedia formats. For example, if you want to play back HTTP / MMS network streams like WMV TV streams or local direct DVB recordings (as TS files), you'll want to prefer GoodPlayer; if you need multiple embedded subtitles displayed at the same time, nPlayer; if you need niceties like DSP's, It's Playing etc.
Let's start with some tips you need to know, independent of the multimedia format you're trying to play back.
1. Essential tips and tricks
1.1 If you have a Retina-screen device (iPhone 4+ / iPod touch 4+)...
You'll want to enable the “Retina Display” option in Settings. It's annotated at the top of the following screenshot:
Also note that, in most cases, you'll also want to enable the, on the screenshot above, annotated-at-the-bottom “Enable Hybrid Decoder” option, should you want to play back MKV and/or AVI files with hardware acceleration.
1.2 Selecting audio and (embedded) subtitle tracks
Unfortunately, selecting AVPlayer's active audio and embedded subtitle track is far from being intuitive. I'm too always being asked about how this needs to be done (an example, new question is HERE).
During playback, it's impossible to change the active track – as opposed to almost all other multiple audio / subtitle track-capable players. (For example, with GoodPlayer, a double-swipe up/down and left/right for subtitle and audio track change, respectively.) It needs to be done in the file list view. In the following mini-tutorial, I show how it needs to be done. For the tutorial, I use the standardized Harry Potter test video MKV available for download HERE. It has two audio tracks (English and Hindi).
First, in the file list view, tap the tool icon in the upper right corner. It's annotated in the following screenshot:
Now, tap the now-displayed arrow icon on the far right of your video. It's also annotated in the following screenshot:
On the now-displayed dialog, tap the Tool icon in the audio row (annotated):
In the list, select your audio stream :
Unfortunately, only the stream index is displayed, not the language code or the human name of the tracks (unlike with most other players), which means it's not very easy to select the track you'd like to read / listen to. This is a major problem with AVPlayer, which, hopefully, will be fixed in the future.
With both subtitles and audio tracks, the first will be the default. With subtitles, you will need to separately enable displaying the manually (or automatically, see previous sentence) during playback with the icon annotated in the following screenshot:
Also note that this has also been shown with ProPlayer in the section “UPDATE (09/11/2012, even later):” HERE. ProPlayer is a slightly dumbed-down version of AVPlayer(HD); this is why its track selection needs to be configured in exactly the same way as in AVPlayer(HD).
1.2.1 What about external (non-embedded) subtitles?
The player automatically loads and displays SRT files of the same name as the main video file, also transferred to the Documents folder of the app via either iTunes File Sharing or Wi-Fi / FTP. An example of such a naming convention:
monsters-samefilename.m4v <- the video file
monsters-samefilename.srt <- the subtitle file
I've also uploaded two files named in the same way to HERE (a simple M4V file without any embedded subtitles) and HERE (an SRT file with one minute's worth of subtitles), respectively, so that you can give them a try.
It isn't possible to separately load an arbitrary, external SRT file, unlike with several other players (yaPlayer, CineXPlayer, It's Playing etc.) This also means, should you want to switch between non-embedded subtitle tracks, it won't be possible as there can only be one (again, with the same name as the main video file itself). You will want to embed all those tracks in your video file (if the container allows this) and, then, select from them in the way as explained in the beginning of the parent section (1.2) of this section. For quick subtitle embedding, you'll want to use Subler for iOS-native file formats and, say, iMkvToolnix for MKV's.
2. When AVPlayer should be preferred to other players?
2.1 AC-3 audio
If your video files only contain AC-3 audio tracks so you must play them back. As AC-3 is officially licensed by the developers and, therefore, won't be removed, you can be sure you'll be able to play back your AC-3 audio even in the fututre.
What is more, the AC-3 audio track is played back even with hardware-accelerated video playback of native Apple formats (MP4 / M4V / MOV), unlike with 8player, one of the other, very few apps to play back AC-3 (see THIS), which can only play AC-3 audio when decoding in software (which is VERY slow with 8player).
2.2 MKV container
As has pointed out in several of my articles, the MKV container is far superior to the containers Apple officially uses and hardware accelerates (MP4 / M4V / MOV).
I'm happy to report that AVPlayer's MKV playback is excellent (if you do enable hardware decoding, see first screenshot in section 1), with all possible (generic) configurations. The player, in the (non-default) hardware-accelerated mode, uses one of the fastest remuxers – far-far faster than that of both CineXPlayer and PowerPlayer and visibly faster than that of It's Playing. (These three players also use hardware-accelerated MKV playback.)
DTS audio tracks don't cause problems either. This is unlike with BUZZ Player (no HW acceleration with MKV's with DTS) or CineXPlayer (absolutely no DTS support). There are no problems with the audio transcoding quality either, unlike with the current version of several other hardware-assisted MKV players (like MobiPlayer Pro)
2.3 Other video and container formats
1080i60 MPEG-2 decoding (e.g, direct ATSC TV recordings as .ts files) works great
MS-MPEG4 decoding is very fast
(Camera) M-JPEG decoding is very fast and flawless
WMV playback (see THIS) is excellent – in addition to fast decoding, both WMA Pro audio and videos with an intro are supported. Even the 1080p30 direct HD-DVD rip (a standardized test video available HERE) with VC-1 video is played back with just-acceptable (between 10 and 20, depending on the scene) framerate, which is pretty much a feat, given that most other players only deliver 1-2 fps with the same video.
Software H.264 decoding is very fast – one of the fastest players. You won't, however, be able to play back any kind of 1080i60, let alone 1080p60, non-hardware-decodable container (e.g., camera AVCHD MTS)
2.4 Generic advantages
With iOS-native files, Apple's own Closed Captions (see THIS) are displayed in the (default) hardware-accelerated mode
16:9 screen support is flawless – I haven't encountered glitches on my iPhone 5
Supports screen filling on the iPhone (for example, to stretch 4:3 recordings to fill the entire 16:9 screen; more info HERE)
Supports gesture-based fast forwarding and rewinding (see THIS). The only disadvantage is that it uses 10-second steps only in both directions, which isn't the most ideal for, say, quickly fast forwarding over a several-minute-long ad block)
Supports redefining gestures
Has support for speed changing during playback
VobSub (bitmap DVD) subtitles are supported; an example screenshot:
Note that this shot has been taken of an MKV file. AVPlayer seems to be still crash on encountering iOS-native files with VobSub subs; for example, THIS one (linked from HERE). For them, you'll want to prefer It's Playing or ProPlayer. (The latter is also recommended in the previous, just-linked article.) For example, this is how It's Playing renders the VobSub subtitle track of the video:
3. In what cases should other players be preferred
You have files with several subtitle / audio tracks and the complete lack of at least language code display makes it very hard to find the tracks you prefer.
No goodies like rendering more than one embedded subtitle track at a time, unlike with nPlayer (see THIS). There is only support for the less-generic, external SMI dual-language subtitles (see THIS for more info). Embedded subtitles are waaaay more flexible than pre-generated SMI subs with fixed language pairs, particularly if you want to pair more than two languages.
OGG videos are still played back with color palette problems (while the playback itself is fast). An example (with the Big Buck Bunny 1080p OGG video available HERE):
Playing back streaming ((local) network) sources is still very restricted: only FTP (with pre-downloading) is possible – no HTTP / WebDAV / UPnP / SMB etc. (Please see THIS and THIS for better choices for UPnP and SMB, respectively.)
DVB TS support is weaker than that of, say, GoodPlayer: 1, DVB subtitles, while displayed, not only lack color information, but also are hard to read as they use wrong colors:
2, dynamic aspect ratio switching (between 16:9 and 4:3) isn't paid attention to; that is, playback doesn't automatically adjusts the aspect ratio when the stream switches it.
MP4 / M4V / MOV metadata (see THIS) isn't parsed / shown in any way, unlike with viPlay and VM Player (HD) - and, of course, Apple's own, stock Videos player.
There is absolutely no ASS / SSA subtitle support, unlike with HD Player Pro (see THIS) and XBMC.
There is absolutely no DSP support (see THIS), unlike with It's Playing (or even, when it comes to software-only playback and audio boosting) GoodPlayer. That is, if you do need to boost the audio volume, select one of the two just-mentioned players. (Again, with GoodPlayer, you won't be able to boost the audio of any video played back using hardware acceleration.)