By Werner Ruotsalainen on Mon, 06/04/2012
At last, I had some time to go on with my article series (first one HERE) on the video camera of the iPhone 4S. As usual, I've made a lot of experiments and measurements.
Let's start with the 60p (60 frames per second) mode – something I didn't have the time to properly elaborate on in the first part (I was busy getting ready for the MWC trip and, then, for a very-very long skying holiday in middle-North Finland. Hence the big pause.).
Recording video at more than 30 frames per second (fps)
Unfortunately, while it is possible to record more than 30 fps, the vertical resolution will always be halved (and, if you use the binned mode, also the horizontal), independent of the actual resolution used. This is the case with both directly editing /System/Library/PrivateFrameworks/ MediaToolbox.framework/N94/ AVCaptureSession.plist and using the third-party apps(currently) capable of recording at more than 30 fps: Better Camcorder and SloPro.
It seems the system automatically switches to line doubling mode when any application attempts to record at any higher framerate than 30 fps. Yes, even recording at 31 fps will trigger this nasty behaviour.
This means you really don't want to record at high frame rates unless you really don't mind the reduced resolution.
Two examples at vastly different resolutions of the effects of the halved resolution (I've annotated the Nyquist threshold with a red line. An ideal camera should render an image very close to these thresholds in which the number of both the horizontal and vertical lines can still be counted. If they can't or are presented as fewer lines, aliasing already occurs where it shouldn't do.):
(800*450; both recorded by Better Camcorder. The first used the Maximum frame rate setting; the video was recorded at 37 fps. The second, as you may already have guessed, used plain, default 30p – hence the definitely superior vertical resolution (the horizontal one is exactly the same). Click the crops for the full, original chart framegrab!)
720p. The difference in the vertical resolution is staggering. (I don't think I need to tell you which one is a framegrab of a >30 fps video.)
BTW, here's also a 720p60 framegrab of the binned mode (only) recommended for low-light shooting. As you can see, as has been already mentioned, here, the horizontal resolution is also halved, not only the vertical one (the latter because of the greater-than-30 fps mode. BTW, the horizontal Nyguist annotation is at the wrong place: just as on other 720p framegrabs, it should be at around 7.2, not at 9.2. Sorry, I don't have the time to fix the shot.):
What about the 1080p resolution? How does it compare to other cameras?
The pure resolution of the iPhone 4S' video(!) camera is nothing short of extraordinary (as is the case with the iPad 3 – my past article is HERE). Here's a framegrab:
As you can see, the number of lines can still be counted just below the Nyquist threshold. Quite amazing if you take into account that most other cameras (or even P&S cameras, for example, the Nikon P300 – dedicated article with test shots HERE) have far worse resolution.
I've also very thoroughly tested two frame rate booster apps, Better Camcorder (AppStore link) and SloPro (AppStore link). These two apps are AppStore ones and, therefore, do NOT require jailbreaking, as opposed to directly editing /System/Library/ PrivateFrameworks/ MediaToolbox.framework/ N94/AVCaptureSession.plist).
Better Camcorder has generally much more shooting modes (resolution, bitrate, frame rate):
SloPro, on the other hand, only offers 720p recording at three different frame rates (appr. 60 / 45 / 33 FPS at the slowest / slower / slow setting):
Genrally, I've found SloPro delivering much higher framerates at 720p than Better Camcorder. That is, if you don't mind the inherently lower resolution and want to record fast action as adequately as possible, go for SloPro.
However, if you don't want to use anything over 30 fps (because of the hit on the resolution) or, for some reason, don't want to use FiLMiC Pro (or my forthcoming, jailbreak-only, 4S-specific camera parameter setter tool), Better Camcorder is a much better choice.
Again, both titles suffer from the same vertical resolution drop over 30 fps. This means ALL your shots made with SloPro will have pretty bad vertical resolution as the minimal frame rate it uses is, as has already been explained, 33 fps.
Speaking of my camera parameter setter tool...
Now that I know what settings should be presented to the users, I'm pretty sure I will code the tool. Hopefully as early as tomorrow. As usual, it'll be free and open source.
UPDATE (14/Nov/2012): new, iOS 6-specific article, also comparing the latest versions, HERE.