iPhone Video Out
Q: How can I get the output of my iPhone’s screen into a DVR for recording into a screencast?
A: Sure, you can go ahead and jail break your iPhone but that would be too risky and it voids the phone’s warranty. Besides, anyone can jailbreak an iPhone, download Cydia and have fun with the included apps…but to us that is B-O-R-I-N-G!
What we did – and what you can do instead:
A small disclaimer before we get started:
Modifications performed by a non-authorized agent of the equipment manufacturer may void your warranty. General modifications are presented on this site for academic interest only.
Specific details were only given to the listener who asked this question after agreeing to not hold us responsible if anything went wrong. Those details are not listed here for the same reasons. We just want to show it is possible to get video out without jailbreaking your iPhone!
Since the iPhone is now just under $100 we purchased 2 to experiment on using two different techniques.
On iPhone #1 – We tinkered around with 2.2 SDK to access the hidden video-out feature (as ArsTechnica also discovered) and we have to say the results turned out pretty decent. It only works in landscape mode, and rendering to TV resolutions strains the processor and slows frame rates down on all but it works!
A class called MPTVOutWindow will display whatever it contains via the video output dock connector.
It’s really just that easy, though there are a couple of caveats:
1. Apps that use this won’t be allowed into the App Store because it uses a couple of private APIs. But since you’re already an iPhone application developer, creating a private build for your own use is normal.
2. It doesn’t copy parts of the screen that belong to OpenGL.
Use the the same cable you’d use to watch videos from your iPhone on a TV using the dock connector. Apple’s sells them for $50; going off-brand drops the price to as low $15.
Headphone-jack video cables from older iPods do not work.
[flv width=”444″ height=”320″]http://www.youtubemp4.com/video/qwQPNSt-CF0.mp4[/flv]
Add the file UIApplication+TVOut.m to your project and add the “MediaPlayer.framework” framework, which contains references to the private API we’re using.
Your code will need to start the TV output by calling [[UIApplication] sharedApplication] startTVOut]; anytime afteryour app’s primary window has been created, call startTVOut.
On iPhone #2 – We simply separated the screen display cables from the board and replaced them with extended RCA video cables out to the video inputs of a DVR.
1. Open up the iPhone by unscrewing the two small screws on the bottom
2. Remove 3 cables in sequence to separate the screen display from the board
3. Attach two cables to the board where the screen cables were once connected. This will be your video and audio out. (black cable =video, red = audio) You may have to solder RCA plugs on the ends.
4. There are additional steps to make this all happen but again, we’re not getting into any details. This is our end result hidden within the iPhone’s packaging – this keeps the phone cooled, charged and always attached to a DVR for recording purposes.