I've pretty much liked (previous review HERE + WMV bible, which also recommends it, HERE) the iPad port of the, on Android, famous and popular video player, QQPlayer. Apart from the (jailbreak-only, excellent) XBMC, it's the only totally free video player I can heartily recommend for most (but not all - see below!) video playback purposes.
The iPhone-specific version has just been released (AppStore link). It's, playback capabilities-, compatibility- and performance-wise, essentially the same as the iPad version. That is, everything I've said about the video format compliance, performance etc. of the iPad version also applies to the new, iPhone one.
(playback of my quarter HD video benchmark file on a Retina-screen iPod touch 4. As usual, click for the original-sized & -quality version.)
(playback of the same file on the non-Retina iPhone 3GS. As you can see, the first screenshot indeed shows the app does make use of the Retina resolution)
The most notable differences between the two versions are as follows:
- as has already been stated, the iPhone version supports the Retina resolution of the iPhone 4/4S and iPod touch 4, unlike the iPad version, which isn't able to render anything at the high resolution of the iPad 3
- the iPhone version doesn't at all use English. It's IMHO not a problem as for example the subtitle / audio track selection is still available with English human names (if available).
Unfortunately, the complete lack of hardware-assisted playback makes this app completely useless for MOV / M4V / MP4 video playback. However, for WMV, MKV etc. playback, it's a very good choice, particularly if you in no way want to pay for your media player and, consequently, don't want to purchase GoodPlayer, AVPlayerHD or “It's playing”.
Some video playback programming...
QQPlayer devs (and, for that matter, anyone without hardware decoding support in their app)! It's SO easy to implement hardware playback and seamlessly implement it into your own app! Just take a look at my video player sources HERE (linked from THIS article), in the DetailView.m file (RootViewController.m “only” makes file selection and filepath passing to DetailView.m possible and is pretty much a standard UITableViewController filehandler descendant), in viewDidLoad. No more than SIX instructions and, again, really easy to integrate in any app... (just make sure you accordingly change [mp.view setFrame:CGRectMake(64/2, 80, 1920/2, 1080/2)]; to display its contents in fullscreen by default, without having to tap the Full screen icon).