Recording screencasts on Windows with free software

(This post was first written in May of 2008, but I’ve been updating it periodically. See also the updates right at the end.)

Screencasts refer to video recordings of screen activity, often with narration. These can be used to demonstrate software or to serve as a kind of visual HOWTO. We often make screencasts of software we design in the Medical Visualisation group at the TU Delft to use in presentations at conferences or to distribute online.

On Windows, Camtasia Studio ($300) or Camtasia SnagIt ($40) are probably the best options your money can buy. Most of the free alternatives suck quite badly: This includes the Windows Media Encoder, thank you very much. In fact, the Windows Media 9 Screen Capture Codec has been fine-tuned to create the worst possible quality movies you can imagine. Another problem with the free options is that they often can’t sustain writing the video stream to disk, hence resulting in dropped frames and unusable screencasts. When they are able to sustain writing, it probably means that the compression is completely killing video quality.

Fortunately, it turns out that there is a free option which offers comparable performance to the Camtasia products, and for good reason. It’s called CamStudio, and it’s even open source! It’s terribly important that you also install the lossless CamStudio Screen Capture codec, it’s this that makes all the difference. This codec compresses all frames with the fast LZO lossless compression algorithm, so you get the highest possible quality without dropping frames due relatively slow disc writing.

Using CamStudio, I made a 3.5 minute screencast, with live audio recording, show-casing some of the new DICOM browsing functionality in the next DeVIDE release. After capture, I transcoded the CamStudio screen capture codec AVI to XVID using MediaCoder, and then uploaded to YouTube (play at your own risk!):

Update on 2010-02-21:

I’ve made two more screencasts and learnt some time-expensive lessons:

  • DON’T encode with H.264, in spite of YouTube’s recommendation. This screws up captured text elements extremely badly. I had much more success with XVID at 1500 kbit/s and MP3 audio using MediaCoder, and THE MOST SUCCESS OF ALL just directly uploading the lossless codec screencast to YouTube, without any transcoding.
  • DO capture at 640×480 or at 1280×720 (HD).  For example 800×600 is NOT worth it, it gets downscaled by YouTube. By capturing at 640×480 or 1280×720 you have much more control over what finally appears on YouTube.
  • If you get audio / video sync problems (I experienced them with a 10 minute screencast), try activating “Use MCI Recording” in the CamStudio “Audio Option for Microphone”.
Update on 2011-10-22:

With CamStudio 2.6 r294 getting the codec working on Windows 7 64bit is not straight-forward. You first install the codec in the normal way (with the exe installer), then you have to do TWO things. First copy camcodec.dll from Windows\System32 to Windows\SysWOW64. Second, create a reg file with the following contents:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\drivers.desc]
"camcodec.dll"="CamStudio lossless codec [CSCD]"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32]

Install it by double-clicking the reg file, or doing right-click and then selecting Merge. After this, you should be able to select the camstudio codec from Options | Video Options | Compressor.

Furthermore, you can upload camstudio-encoded movies directly to Google Picasa, it Just Works(tm)!

Update on 2013-02-13:
If CamStudio 2.7 complains about MSVCR100.dll being missing, you should install the MS Visual C++ redistributable (32bit, because CamStudio is 32bit).