iPhone Video Screen Capture
Thursday, October 15th, 2009
I recently had the misfortune of having to make a video to showcase Bubble Burster. The results were not pretty. I was literally laughed at by friends when they saw it. The problem is that while you can take screenshots of the iPhone screen, there is no way to capture video. I could have used a screen capture program but those cost around $100 (yes I am very cheap). The best solution I could come up with was to use the built in iSight on my MacBook to show the app.
Looking around for a better alternative I ran across this post from Tweetie creator, atebits. Basically what he did was create an app that set some settings on the iPhone simulator to look more like the real thing and then overlaid a circle for the pointer and a glare for the screen. You still need a screen capture program, but it looks much better. This got me thinking of what I could do.
I came up with a SIMBL plugin for the simulator. Basically it captures a screenshot every frame and then saves it to video. It overlays a circle for the pointer and a gloss iPhone frame (thanks atebits for “allowing” me to steal your artwork).
You can see a Demo of it to get a feeling for what the recording looks like.
I am not quite finished with it. It doesn’t record the audio and I would like to add in the functionality from the thankfully open source atebits SimFinger like installing default applications and setting carrier display name. I would also like to make the pointer fade to transparent when you leave the frame.
The video quality leaves something to be desired in my opinion and it already takes forever to export the video.
To install the plugin, place it in “~/Library/Application Support/SIMBL/Plugins”. create it if it doesn’t already exist. You will need to install SIMBL as well. Right now it is only for Snow Leopard but there isn’t anything major that is keeping it from working on Leopard other than some convenience methods.
If you end up using this plugin, please let me know in the comments.
Update: I uploaded the demo video I made for Bubble Burster. I used a custom build that ignores the accelerometer. I then used After Effects to rotate the video to match my actions. I think I should have paused a little though, because in parts it looks unnaturally fast.
Update: SDK 3.2 breaks compatibility with this plugin. I will be working on a possible fix.
Filed under: Programming Tags: Apple Developer Tools, iPhone, Screencast, SIMBL

christi
November 24th, 2009 at 4:59 PM
Hi there, this looks great but is there a way to turn the pointer off?
David Beck
November 24th, 2009 at 5:01 PM
Yes. Go to “Recording” -> “Recording Preferences” and uncheck “Record Pointer”.
bob
January 12th, 2010 at 6:46 PM
Hi Dave,
I compiled your app but there isn’t an executable, what am I doing wrong?
David Beck
January 12th, 2010 at 6:55 PM
Are you getting any errors?
There is no application. The product is a SIMBL plugin of type (.bundle extension). The projects executable installs the plugin and launches the simulator. You will need SIMBL installed too.
bob
January 12th, 2010 at 7:32 PM
Hi Dave,
Thanks for the quick response. I have SIMBL installed, the program builds with no errors. I did notice that the build and run buuton is dimmed on the simulator. Maybe something is set wrong in the project. I am running Snow Leopard…
Lisa
January 26th, 2010 at 10:39 AM
Im not a developer but I would like to record a demo on the iphone, how do I actually use the plugin? I have downloaded both things and put the folder in the library directory like you said. But I dont know how to actually use it. Please help
David Beck
January 26th, 2010 at 10:47 AM
Did you install SIMBL as well? You should just have to double click the installer when you download it. You will also need the iPhone developer tools. They are free for Mac users.
Assuming everything is installed, when you launch the iPhone Simulator, there will be a “Recording” menu. From there select Record. A window will appear with a record button and a timer. Once you are done recording, select “Recording” | “Save”.
You can also select “Recording” | “Recording Preferences” to change some settings like background color (including transparent), time and even carrier.
sonas
March 7th, 2010 at 7:01 PM
Hi David,
I have some errors, so maybe you see what I should do:
“Building target “iPhone Simulator Capture” of project “iPhone Simulator Capture” with configuration “Debug”
Checking Dependencies
Invalid value ‘com.apple.compilers.llvm.clang.1_0′ for GCC_VERSION
Unable to determine concrete GCC compiler for file /Library/Application Support/SIMBL/Plugins/iPhone-Capture/iPhone Simulator Capture/ISCController.m of type sourcecode.c.objc.
….. etc.
I don’t know if I install correct your Capture script or SIMBL (Can I just copy a SIMBL folder from HD where is installed default to Liblary/Application Support/SIMBL/Plugins?)
How should look Plugins folder?
When I lunch iPhone Simulator I don’t have record button?
Should I first run Xcode? Open some your project or just run iPhone Simulatr?
Please explain ones again in few steps, I try do this and can’t get results.
Best
David Beck
March 7th, 2010 at 7:05 PM
Are you using Snow Leopard? I have not tested this program with prior versions. Clang is the new compiler for Snow Leopard. You can try changing the compiler in the project settings.
sonas
March 7th, 2010 at 9:03 PM
No I using Leopard, but now I have some “error: cannot find protocol declaration for ‘NSApplicationDelegate’”