Archive | February, 2009

“I’m not entirely sure where you live”

23 Feb

That’s how a veiled threat is usually phrased, isn’t it?

How to make a decent screencast

20 Feb

A lot of screencasts suck, and it’s quite apparent why: the typical sucky screencast is thoughtlessly produced in about the same amount of time as it takes to watch it. If you want to produce a decent screencast, you should expect the production-time-to-viewing-time ratio to be more like 20 to 1 rather than 1 to 1. (I arrive at the figure 20 based on the fact that screencasts I’ve produced in the past with a ~10 to 1 ratio still sucked quite badly. I suspect, however, that the correct figure is closer to 30.)

Anyway, to produce decent screencasts, I’ve settled upon a quite involved process:

The content

  1. First, create slides. If your screencast really requires full-motion video, we’ll insert that later. For now, just use the slides as a kind of outline or guide, even if they aren’t going to appear on screen in the end. For presentations, I’ve gotten accustomed to PowerPoint 2007, as OpenOffice Impress is just too clumsy, and the presentations that Impress produces are much harder to make look decent.
  2. Second, record your narration. If you’ve written out everything, try improvising with the words a bit to help give the illusion that what you’re saying is extemporaneous. If you’re just making it up as you go along, that’s fine and in fact the way I do it, but understand that you should record in short intervals (~15-30 seconds) with as many retakes as it requires to get it right. Do not expect to deliver even just a few minutes of talk off the top of your head in one take. If you’re doing it right, working without a script goes quite slow. Each minute of narration I’ve produced this way has taken about 5 to 10 minutes of recording.
  3. Third, edit your narration. If you worked without a script, you’ll likely have many flubs and odd pauses to remove, even if you properly did retakes. You’ll also likely need to add appropriate breathing space between topics. Even if your performance is perfect, you still probably need to normalize and compress to help even out variances in volume, and you may want to try noise reduction (just don’t use too much because you’ll then end up sounding robotic).
  4. Fourth, use desktop recording software to record the slides. I’ve found the automatic slide timing in PowerPoint too clumsy to match the slides to the narration, so I just click through the slides myself while listening to the narration. To do this well, I find I need to first listen to the narration and create a list of the times at which I need to click. If you need full-motion clips of your desktop, simply produce them individually to be edited in later.
  5. Fifth, use video editing software to put the video and sound together and to compress it all into a deliverable format. If the sound doesn’t match perfectly to the video, try duplicating and remove frames as necessary.

The technical bits

Rather than use a deskstand mic, I use a headset-style mic. Because I find the headphones uncomfortable, I wear them around my neck with the mic bent in place in front of my mouth. Understand that small changes in the mic position relative to your mouth will produce very noticeable changes in the acoustics of your voice, so try to find a single position and head angle to use every time.

To record and edit the audio, I use Audacity. Hit R to record, space to stop. (Be careful because if you hit R and space too quickly after each other, Audacity–on Windows at least–tends to crash. I suggest saving to WAV for every minute you produce.) Unfortunately, Audacity starts a new track every time you hit R, so you’ll have to manually consolidate the tracks, but it’s thankfully not too bothersome to do this: just cut and paste by highlighting with the mouse and using ctrl-x, ctrl-v. (Tip: after consolidating, delete the empty tracks by clicking the small x in the top left of each track.)

While recording, I prefer to start a new WAV file for every 4 or 5 minutes of audio so as to diminish the chance of losing work. I number the tracks like so: blabla-000.wav, blabla-001.wav, blabla-002.wav, blabla-003.wav, etc. (where blabla is the name of the screencast).

When done editing the audio, I use the compressor effect in Audacity to get consistent volume. I set the threshold to -30db, and if the end result doesn’t look even, I’ll run the compressor again one or two times until it does. Then I find a bit of audio where I’m not talking but which has some noise, select it, click ‘noise removal’, click ‘get noise profile’, then select the whole audio, click ‘noise removal’ again, slide the slider all the way left, then click ‘remove noise’.

Through this whole process, save everything as at least 44.1khz 16-bit stereo in WAV format. If we’re going to degrade, we can do that later.

To capture video of the desktop on Windows, I use CamStudio, an open source tool. Some Vista users will find that the 2.5 beta has fixed sound recording for them, but because we’re not using it to record sound, I recomend just using 2.0. Also be sure to download and install the CamStudio lossless codec (latest is 1.4, at the moment), which I find is the best for pristine full-motion desktop capture. I do my presentations in 16×9, so I set the desktop to 1280×720, run the presentation in full screen, and use CamStudio to record the full screen without any audio. Handily, CamStudio has an option to disable recording of the cursor.

To edit and compress the video, I use VirtualDub. Using the CamStudio codec with VirtualDub requires installing the DirectShow plug-in (which does not work with 64-bit VirtualDub, so be sure to use 32-bit).

Open the video file, then under “Audio”, specify “audio from other file…” to get audio from the appropriate .wav file. You may have to adjust the sync under “interleaving”. Because we’re compressing to mp3, first select “full processing mode”. While your original mic recording in Audacity will be in mono, you at least want it to be mono coming out of all of the listener’s speakers. Otherwise, even a decent narrative will come off as sounding tinny, dull, and lifeless. So under Audio->Conversion, be sure to select stereo. Then under “compression”, I suggest 44100 Hz 128kbps stereo mp3. (Also, stick to CBR as it will further reduce the possibility of sync issues. If you need an mp3 encoding codec, LAME mp3 is the obvious choice.)

Under “Video” select “fast recompress”, then select a compression codec. I recommend x264vfw, an h.264 codec. (VitualDub requires Video For Windows encoding codecs, so if you already have an h.264 codec, you may still need x264vfw.) Experiment with the compression levels until you find something acceptable.

Assuming your video is mostly still images, the video data should run at well under a megabyte per minute such that the audio data will most likely outweigh the video data in the final file. A 10 minute video produced this way takes about 15 megabytes. I’m sure with greater compression expertise, this could be cut substantially, but if your end target is Youtube and other video services, I strongly recommend aiming for quality first and letting them handle any further compression.