By Jake Edge
February 1, 2012
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
recording.
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
the man
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
showing human-initiated
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
home page).
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
the case.
Comments (23 posted)
Brief items
I really urge people to think about openness and freedom, two
amazingly important concepts, beyond the boundaries of simple
software licensing. Licensing is important, and we take it pretty
damn seriously .. but we ought to look at bigger picture and really
think about how to make our digital tools open and free in all
sorts of ways.
--
Aaron
Seigo
But whereas I previously held for Java a cordial dislike borne of
having only a cursory notion of how it worked, now my dislike for
the language can no longer be called at all "cordial", for
familiarity has bred contempt.
--
Tom Christiansen
Comments (39 posted)
The Firefox 10 release is out. New features include better add-on
compatibility, anti-aliasing for WebGL, CSS 3D transforms, a full-screen
API for HTML5 applications, and more; see
the release
notes for details.
Comments (1 posted)
The
freemyipod
project aims to provide tools and documentation that will allow you to
jailbreak your iPod so that you can run alternative firmware such as
Rockbox. So far only clickwheel devices
are supported. (Thanks to Ashley Hull)
Comments (none posted)
The Git 1.7.9 release includes a long list of new features, including
localization support with gettext, the ability to work with platform-level
key management mechanisms, the ability to pull from a signed tag (and keep
the relevant metadata), a new option to create GPG-signed commits, a
side-by-side diff display in gitweb, and more.
Full Story (comments: none)
Christoph Feck has
announced
the first release of ImageZero, a lossless photo compression tool.
"
Being twice as fast as PNG when decompressing (and more than 20
times faster when compressing) it achieves compression ratios that are near
or better than PNG for natural photos, sometimes even better than JPEG-LS
for very high quality photos." The code is available
on gitorious. (Thanks to Paul
Wise).
Comments (25 posted)
Version 2.1 of the Mercurial source code management system is out. The big
feature this time around is
phases: "
Phases improve
safety of history rewriting and provide control over changesets exchanged
among different repositories. Phases are intended to
transparently 'just work' for most users." There are also some
bookmark improvements, better copy detection, and more; details are in
the WhatsNew page.
Full Story (comments: 1)
Version 3 of the ownCloud personal cloud system has been
announced.
New features include a browser-based text editor, an integrated PDF viewer,
a photo gallery application, an improved calendar application, and,
inevitably, an application store. "
The browser based text editor
supports 35 programming languages for syntax highlighting, keyboard
shortcuts, drag and drop text, automatic indent and outdent,
unstructured/user code folding and Live syntax checker (for JavaScript,
Coffee and CSS). The editor is based on the ACE JavaScript Editor. The
editor supports basic text files. Editing more advanced formats like doc(x)
and ODT is planned for future releases." LWN
looked at ownCloud in early January.
Comments (none posted)
Newsletters and articles
Comments (none posted)
The PyPy Status Blog has
an
update on the status of the PyPy port to the ARM architecture.
"
The current results on ARM, as shown in the graph below, show that
the JIT currently gives a speedup of about 3.5 times compared to CPython on
ARM. The benchmarks were run on the before mentioned BeagleBoard-xM with a
1GHz ARM Cortex-A8 processor and 512MB of memory. The operating system on
the board is Ubuntu 11.04 for ARM."
Comments (none posted)
Page editor: Jonathan Corbet
Next page: Announcements>>