David Beck's Blog

iPhone Video Screen Capture

Thursday, October 15th, 2009

iPhone Screen Capture recording video

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.

Download

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: , , ,

11 Responses to “iPhone Video Screen Capture”

  1. Hi there, this looks great but is there a way to turn the pointer off?

  2. Yes. Go to “Recording” -> “Recording Preferences” and uncheck “Record Pointer”.

  3. Hi Dave,
    I compiled your app but there isn’t an executable, what am I doing wrong?

  4. 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.

  5. 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…

  6. 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

  7. 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.

  8. 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

  9. 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.

  10. No I using Leopard, but now I have some “error: cannot find protocol declaration for ‘NSApplicationDelegate’”
     

  11. Any luck on the 3.2 port?

Leave a Reply