Best tools to produce screencasts in Linux? [closed]

I would like to make some screencasts to teach programming in Linux. Ideally they should be able to:

  • Record, of course, what is happening in the screen (ideally they should be able to record only specific zones).
  • Zoom / highlight.
  • Annotate.
  • Record audio (an explanation about what's happening).
  • Support subtitles.

It would be highly desirable that they have good compression rates and several output formats (Eg. video, flash).


1. RecordMyDesktop

You can use RecordMyDesktop which can be setup to capture sound too.

2. Istanbul

Istanbul is a gnome app to record your desktop

3. Screentoaster

You can also use screentoaster which is an online service that is platform independent and relies on java. (It works a treat.)

4. VLC

You can pre-record the sound and then use VLC by going

  1. Media
  2. Convert/Save
  3. Capture Device
  4. Capture Mode to "Desktop"
  5. Set frame rate
  6. Capture/Save
  7. Set File Name

you can then use ffmpeg or Mencoder (which is part of Mplayer) to merge the audio and video file.

5. ffmpeg

In fact ffmpeg can also be use on its own to save a screencast by doing

ffmpeg -f x11grab -s 1280x800 -r 60 -i :0.0 ~/name.mpg

replace 1280x800 by your resolution and 60 by your desired fps.

you can record the sound using Audacity, and then merge the audio and video files. (shouldn't be too hard to set up a script that starts both apps at once, etc...)

Subtitles, Zooming, editing, etc

Subtitles Can be added using KSubtitle. You can also use The Open Movie Editor to do this, (but you'll need to use png images, which isn't ideal) and Pitivi or cinefx for editing your video. Avidemux will also add subtitles to an avi file as shown here

It'll be really hard to find all the features you request in a single tool. I advice first getting a nice video/audio file and then editing it with zooms, annotations, etc... It really doesn't matter what format you capture, since you'll be able to convert using ffmpeg.