Producing Screencasts
Recently I produced a screencast of a run through of the use of Plone at the National Library of Congress of Chile. I thought I would just document my process in creating this and the steps I went through and the hurdles I came up against.
Firstly, this screencast was captured as a spur-of-the-moment thing, and I just had my Macbook Pro at an expo and didn't have time to set anything specific up for it. I used the built-in screen recording feature of Quicktime X that comes with MacOS X. I set the screen resolution of my laptop to 1024x768 before I started the capture in order to capture it at a size that I thought would be suitable for most people.
Quicktime also captured the audio of the screencast via the built-in microphone on the Macbook, but being in the middle of an expo this was pretty noisy and not really suitable to use for the final screencast. Not only that, but I knew that being captured live and un-rehearsed I would probably need to edit out typos and mistakes that inevitably crop up in live capture situations.
I initially tried to use Camtasia Mac to open up the saved h.264 .mov file that Quicktime had produced and use that to edit out sections of the capture and to record a new audio voiceover. That ended quite badly when Camtasia decided to corrupt a day's worth of work. It might have been partly my fault as some of the source material I used for the new audio track was on an external drive that got unplugged at one point, but either way Camtasia didn't like it and refused to recover from the situation even though the drive was plugged back in again.
I also briefly played with Screenflow as well, but didn't seem too impressed with the editing tools it had. It looked great for capturing screencasts in the first place and can do zooms, and highlight clicks etc, but still didn't seem what I needed for the editing.
Then I discovered Final Cut Express. FCE is the little brother to Final Cut Pro, the software used by professionals for editing digital video and TV shows. FCE is quite a bit cheaper than FCP which was beyond my budget for this project. I had decided that I was going to try doing a few more screencast of projects we have worked on and so wanted to try and get something that I could work with and would handle anything thrown at it. I wandered down the Apple Store and picked up a copy of Final Cut Express and ordered the first book I came across on Amazon, Tom Wolsky's "Final Cut Express 4 Editing Workshop" for next day delivery. Another feature that drew me to FCE was the 'Voiceover' feature. This allows you to easily record voiceovers to video by cueing you in and out of the segment and allowing you to hear the audio up to the point at which you start speaking. It also captures 5 seconds before and after the cue points so you can manually adjust it a bit if you started a bit too soon or late. It also makes it very easy to re-take a section -- a feature I knew I was going to need quite a bit!
One thing that has always bugged me with screencasts is poor sound quality. The human brain is much more tuned to audio fidelity than it is visual fidelity and so you really do notice poor sound quality. So again, I decided as I wanted to do a few more of these, to invest in a decent microphone. I found the AKG Perception 120 USB microphone and ordered that for next day delivery too. Now, I don't know a huge amount about these things, but I do know what AKG are highly regarded for microphones, and this one being a USB mic should work well with my Macbook Pro (which only has a single 3.5mm in/out socket, so you can't have a mic and headphones at the same time). It is a solid metal microphone that feels very sturdy and that comes with a small desktop stand and requires no software to operate, it just shows up natively as a sound input device on Mac OS X and Windows.
So I thought I was ready to begin, and tried to import my source H.264 screen recording into Final Cut Express. This was where I hit my first big stumbling block due to my in-experience. FCE cannot edit H.264 directly. This baffled me at first, but it stands to reason when you think about it. H.264 is a delivery codec. It compresses the video for delivery to the audience, it is not intended to be encoded/decoded in a random way as you would when editing video. So I had to encode it to some other format first that FCE could deal with. A bit of searching around and I found a codec called Apple Intermediate Codec that FCE can use directly. I found a free piece of software called MPEG Streamclip, which can convert to Apple Intermediate for FCE to open. I converted it, but still no joy. I then discovered that one of the limitations of FCE as opposed to its big brother Final Cut Pro, is that it can only deal with specific frame sizes and frame rates... those used by the digital video industry, and not arbitrary ones. Now this stands to reason if all your source material is coming from a digital video camera, and is all going to be PAL/NTSC or 720/1080p but it can't handle 1024x768 which I had recorded my screencast at.
Again, back to MPEG streamclip and I got it to scale the source down slightly from 768 pixels high to 720 pixels and make it 960 pixels wide rather than 1024. This got me the right height, and the same aspec ratio, but was still too narrow. Luckily Streamclip can crop, and understood me asking for a negative crop of 160 pixels each side as padding and it added black 'pillarboxes' to each side. I also had to get it to output 29.97 frames per second as opposed to the 5 frames per second that the original screen recording was in.
So a bit of a faff, but worked out OK once I figured it all out. The bottom line is if you want to use Final Cut Express you need to make sure your source material is in the format it expects, which is one of the digital video standards.
I imported the source screen recording into Final Cut Express and then could edit it, and just to confirm everything was going to be OK, I exported a small section back out as Apple Intermediate and ran it back through MPEG Streamclip, this time cutting off the pillarboxes on each side, bringing it back down to 960x720 and encoding it as MPEG4. The quality was fantastic, and by using Apple Intermediate back and forth between MPEG Streamclip and FCE I was able to maintain the fidelity of the text in the screen capture. When you are dealing with general TV images, losing a bit of sharpness is not so much a problem, but with screencasts where you have text on the screen it is a major issue.

