I've released a 4.3.x-compatible version for the iPhone 3GS.
It, just like the pre-4.3 version I released yesterday (direct link:
https://forums.macrumors.com/posts/18658177/ ), supports fairly high-resolution video recording. In this regard, it's vastly different from iOS5 and iOS6, which, as has also been explained in my yesterday's release notes, no longer support high-res shooting.
Therefore, should you want to record at high resolution (and be absolutely sure you know the inherent, related problems the iPhone 3G S hardware has), you must downgrade to an iOS version 4.x. Should you want the better video quality, you will want to prefer iOS versions prior to iOS4.3. However, given that almost no new AppStore releases, both updates and new apps, have supported these iOS versions since Sept, 2012, you'll want to prefer going the pre-iOS4.3 way if and only if you are absolutely sure you won't need to run any fairly new third-party app on your iPhone.
In addition to having better hi-res video recording, another case of preferring iOS versions prior to iOS 4.3 is the lack of any saved SHSH blobs. If you have never jailbroken your 3GS or missed doing so on 4.3.x, you won't be able to downgrade to any 4.3.x iOS version. 4.1, on the other hand, can be easily restored on any kind of 3G S, even on ones never JB'n before, as Apple signs it still. (Please read the section “Addendum: Downgrading to iOS 4.1” for more info on how downgrading problems can easily be fixed.)
Inherent Image Quality Problems With iOS 4.3.x
As I've pointed out above, if video footage quality is of extreme importance to you, you won't want to use iOS 4.3.x (or iOS5/6, of course). iOS 4.x versions prior to 4.3 deliver way better footage if you do need to have live preview during shooting and also refocusing capabilities. iOS 4.3 can only deliver footage of the same quality (framerate, “clicking-less” operation) when not presenting live preview and focusing into infinite. Even if you frame your shot before shooting in the still mode (the video mode has exactly the same field of view as the still mode), not being able to focus to subjects close(r) to the iPhone means you can't have sharp video of subjects closer to the camera than, say, 1.5 meters.
If you do, however, want live view, it will simply introduce a lot of “clicking” (quick camera re-initalization) during shooting under low light. It'll only work (semi-)properly under good lighting.
Let me show you examples of this.
The YouTube video at
http://www.youtube.com/watch?v=V3nu8AcRhlw shows how the video is recorded by my tweaked no-preview mode under bad light. As you can hear, there're absolutely no clicks. The video does have some, in general, 0.5-second-long pauses now and then at counter state 413, 486, 898, 1528, 2400, 2473, 2546, 2674, 2746, 2975, 3177, 3248, 3320, (and, after restarting) 48, 120 and 129.
The footage recorded with enabled preview on is at
http://www.youtube.com/watch?v=eCgmzuqK2Eo . It's full of “clicks” (at position 293, 382, 394, 483, 600, 693, 816, 943, 1059, 1143, 1256 etc.) and has the framerate of 6.67 fps, while that of the no-preview version is a definitely smoother 9.47 fps.
Here are the videos shot under good light:
http://www.youtube.com/watch?v=uY8w7Ma5fV0 (no preview)
http://www.youtube.com/watch?v=iF7yMF6A86M (with preview)
As you can easily see, apart from an initial click, the enabled-preview version is definitely cleaner (more click-free) than the previous one shot under low light. It even produced better framerate (13.19 fps) than the disabled-preview version (12.16 fps).
All in all, if you do know you have bad lighting, don't use the enabled-preview mode. Either shoot in the stock VGA-resolution mode or, if you don't mind the lack of live view (because, say, you shoot from a tripod and previously align the camera) and the focus set to infinity, the disabled-preview mode.
How Do the Above Modes Compare to Pre-iOS4.3 Video Recording?
Here's how my yesterday's pre-iOS 4.3 tweak records the same 60 fps test footage under low light:
http://www.youtube.com/watch?v=zj8N1_Xs9fM
As you can see, the footage is absolutely flawless: no visible stuttering / pauses and the framerate is adequate (12.6 fps). It's definitely superior to even the disabled-preview mode of iOS 4.3, let alone the enabled one.
And this is the bright light one (again, under iOS 4.1):
http://www.youtube.com/watch?v=D9tpWEvwXiE
(12.7 fps)
Using the New, 4.3-specific Tweak
If you do want to stick with 4.3 (again, as has been proved above, you _
really_ want to prefer 4.1 if you need the best possible image quality, unless you do need 4.3 for app compliance!), get the 4.3-specific version from my Cydia repo. The name is “
3GS HiResVid (iOS4.3)” (direct link to the downloadable DEB file:
http://www.winmobiletech.com/cy/deb...videocameraenhancerios43_1.0_iphoneos-arm.deb ):
Note the version I've released yesterday for iOS versions prior to 4.3 is listed directly beneath the new tweak.
This is the detailed view in Cydia:
Using the tweak is the same as with my previous releases. Here, there are three elements in the left picker, all corresponding to the three available video modes. Based on the above description, you'll now be able to properly select the right one best for the current subject lighting, distance etc. This is shown in the following screenshot:
For Programmers
Here's the source:
https://dl.dropboxusercontent.com/u.../iPhoneWideFoVCamcorderEnhancer -3gsiOS43.zip
Compared to the pre-4.3 version, these are the most important changes:
- three main modes, compared to two, making the code a bit longer
- while the location of
CameraRollValidator.plist is the same as before (the file needs to be patched so that higher-resolution footage can not only be saved, but also be played back in the Camera Roll), the main configuration file, now called
AVCaptureSession.plist (as opposed to
AVCapture.plist), has been introduced to
/System/Library/Frameworks/AVFoundation.framework/N88/; that is, to an entirely different directory. (This file will, then, be later further relocated in both iOS5 (to
/System/Library/PrivateFrameworks/MediaToolbox.framework/N88) and iOS6 (
/System/Library/Frameworks/MediaToolbox.framework/N88)) The structure of this file is pretty much the same as that of later iOS versions (and is different from the pre-iOS4.3 one).
- because of the two different directories needing o+w, the
preinst file has four commands: two o+w grants for the encompassing directories and two change-owner commands for the actual plists.
- I need to directly overwrite the
Preview values under
AVCaptureSessionPresetHigh > LiveSourceOptions > Preview. iOS4.3.x seems to be the only version where there's absolutely no live preview if the dimensions here aren't the same as those under
Capture. In all other iOS versions, they can stay at their original value – and this is why I don't modify them in any of my other tweakers.