23 October 2012

After several attempts, I now have a reasonable workflow for creating good quality screencast tutorials. The right combination of hardware, software and hosting solution took some testing to find. The knowledgebase itself is being built with basic Drupal modules (e.g., book), although there is a thin custom permission layer on top of that to support different types of visibility (both for accessing the page directly and via the sidebar). The video generation took the most time, largely because video is inherently time-consuming to create.

Sound and Hardware

Background noise is always difficult to remove from video. To maximize audio quality, I went with a headset (Logitech h390). After some tweaking, I managed to get extremely clear audio with minimal background noise.

Screencasting Software

Initially, I planned to use CamStudio. Based on reviews and initial tests, it was extremely easy to use and should have filled my needs. However, it fell apart when I recorded an actual screencast because of its 2GB file size limitation that would throw the error "File creation error: unable to rename/copy audio file". Rather than fighting with it, I switched to HyperCam. HyperCam appeared to record directly to video rather than combining audio/video in a second step like CamStudio. It was not quite as graceful (e.g., window selection did not work well with Office 2010), but functional and working on clips longer than a few minutes made the switch worthwhile.

However, HyperCam still generated enormous files. A 5:45 clip created a 1.2GB avi file. Sending that to a zip file compressed it down to 300M (compressed to 25%), but uploading the video to any host would be far too time-consuming.

Video Compression

I have been a long-term fan of Any Video Converter, both the free and the ultimate editions. It comes with output profiles that would probably work for most people. To create a better balance between file size and quality, I used this profile:

  1. Profile selection: HTML5 MP4 Movie (*.mp4)
  2. Video Codec: x264
  3. Frame Size: 720x480 (this was about a 40% reduction for me)
  4. Video Bitrate: 768
  5. Video Framerate: 25
  6. Encode Pass: 1
  7. Audio Codec: aac
  8. Audio Bitrate: 128
  9. Sample Rate: 44100
  10. Audio Channel: 2
  11. Disable Audio: No
  12. A/V Sync: Basic

With those converter settings, the 1.2G avi file compressed down to 20M, a much more reasonable size for upload and distribution.

Hosting the Video

The compressed video files were then uploaded to our Vimeo account. Vimeo allows configurations to prevent embedding the video in other domain names. That technology is imperfect, especially when combined with progressive download, but it provides an appropriate level of security for this type of de-identified video data.

So that was the whole process. Hardware, software, compression and hosting selections. Now, I just need a little more time in the day to build out the full knowledgebase!



blog comments powered by Disqus