Turning an on-screen session into a video is a widely used technique for a
number of different uses, but one of its main use-cases is for education.
One can find any number of "screencasts" on YouTube or elsewhere that show
how to do particular tasks using various tools like Gimp or Blender.
Depending on the task, it's generally much easier to show people how
to do something rather than to try to explain in words the steps required.
There are a few different Linux tools available for doing screen
Perhaps the best-known choice is recordMyDesktop,
which is actually a command-line tool that provides a means to turn a
region of the desktop into a video—in Ogg-Theora-Vorbis format. As
page describes, there are lots of different options that can be used to
control the area that will be recorded, the video format and frame rate,
sound options, and so on. But, since screen recording is an inherently
visual task, there are both GTK and Qt front-ends available.
Both of the front-ends are written in Python using either pyGtk or pyQt4,
and both, not surprisingly, provide a GUI interface to the recordMyDesktop
command line. As
one might guess, the front-ends pretty much look and act the same (the Qt
version is seen at right). In the simplest case, one simply indicates the
region of interest on the preview pane. Once the region is
selected, hitting the
"Record" button starts the video capture. Amusingly, because the preview
pane shows the entire
window, including the qt-recordMyDesktop window itself, one gets an
"infinite" regression in the pane.
One can also choose a particular window, rather than a region, by using the
"Select Window" option. But, in either case, it is really the rectangular
region of the visible screen that is being recorded. If another
window is moved into the region, or a different virtual desktop is chosen,
that's what goes into the video. Depending on the use, that may be exactly
what is called for, but, for other uses, like recording an online lecture
or webcast, it may require extra care. Popping up an email client or web
browser to quickly check something may result in unwanted video artifacts.
Audio can also be recorded, either from the audio that accompanies the
content or from a local microphone. For the specific recording I was doing
(a Go class lecture on the KGS Go Server),
it required switching the sound source in recordMyDesktop from "DEFAULT" to
"pulse" and using pavucontrol to change the recording source for the
application to the
"Monitor" of my sound card. It was a little non-obvious, at least to me,
but there were multiple solutions that Google led me to, including this.
The "Advanced" settings allow changing things like the sound source
mentioned above, but also frame rate, on-the-fly encoding, mouse cursor
settings, and more. As with video in general, files can get fairly large for a
90-minute class, so reducing the size of the recording area and the frame
rate will produce smaller video while still capturing the information
needed. A 2 frames per second (fps) setting, for example, may be fine for
screen changes and can make a big reduction in size from the default 30fps.
The recording is stopped from a panel applet (or a signal to the
recordMyDesktop process), which will then start the encoding process (unless
on-the-fly encoding is chosen). The end result is a out.ogv file
that can be played in Totem, Dragon Player, or other video
players. Sadly, sharing Ogg format video with much of the rest of
the world is difficult, so transcoding to WebM (maybe) or H.264 is probably
required. Transmageddon or Arista (for those not running the GStreamer
bleeding edge) fit the transcoding bill nicely.
Another option for recording is Istanbul, which has a minimal
"GUI" via the menu from its panel applet. It lacks many of the advanced
features of recordMyDesktop, including the
ability to directly record audio. One can use a separate audio recorder
and try to synchronize the audio and video (as the Fedora wiki suggests),
but that may prove somewhat painful. Another option is Byzanz, which is a
command-line-only tool that also lacks audio support (and, seemingly, a
From discussions with other students who use OS X or Windows, the choices
there are more varied, but generally not free (in either sense of the
term). I found recordMyDesktop to be more than adequate for the task at
hand, and it would seem that lots of others are using it as well. If audio
is not required (or can be recorded separately, perhaps by narrating while
watching the video for example), Istanbul or Byzanz may suit as well.
Foolishly, I set out on this task thinking that Linux options might be
difficult to find or use—video applications for Linux have had that
reputation in the past—but was happily surprised to find that it wasn't
to post comments)