Screencasting On Linux Review Part 1

What follows is part one of a two part review of Screencasting on linux. This part contains detail about what a screencast is, how they're used and roughly how they're made. In part two I'll detail and review each of the products available on Linux for screencasting.

Screencasting with Linux

As a term screencasting has been around for about 2 years and describes a method of recording what a user does on a computer screen into a movie. This can be used in a show-and-tell manner to illustrate how to perform a particular task. Most often a screen recording can be used to educate new users of a software product, demonstrate how an application works and promote a piece of software.

Usually the recording is made available online either in streaming format such as flash, or in a downloadable format such as OGG or more often proprietary compression algorithms (called codecs) in formats such AVI/WMV/MOV. Screencasting is rapidly becoming a popular way of disseminating information electronically.

Recording the desktop isn't new however. For some time a screencast on Windows was known as "screencam" after the popular Lotus application of the same name. Recently the number of free and paid-for applications available to record desktop operations has grown dramatically. Windows, Mac and Linux users are all able to pick from a selection of tools for recording desktop sessions

Download or stream

Generally the size of a screencast is influenced by the duration, video and (if included) audio encoding method used and screen resolution & colour depth the recording was recorded at. Consumer broadband and corporate internet connections have increased in speed and with the prevalence of peer to peer networks, downloading large videos has become a viable proposition.

Not all screencasts are made available for download however. Flash is a popular method for making videos available, be they of the humorous diet-coke-and-mentos variety or more serious subjects like product demos. In the free software world Flash is a contentious format to make videos available in. Whilst the browser plugin is available for many popular platforms and operating systems it’s not entirely cross platform and certainly isn’t open and free (as in speech). Windows users often suggest that Flash is a perfectly acceptable format for videos to be distributed in – the popularity of Google Video and YouTube are clearly proof of this.

The problem comes when marketing videos to Linux users. Providing videos whose subject matter is based around free and open software, protocols and ideas, and then to make them available in a closed format is seen by many as thoughtless at the least and possibly even a touch hypocritical.

Of course if when targeting Windows users – possibly making demo videos of Linux for them – then it’s sensible to use a format Windows users can actually play. Flash is often the first choice because Adobe/Macromedia has achieved amazing penetration of their player on the Windows platform.

Making a video available in an open format such as OGG/Vorbis/Theora is great for Linux users though because generally it will play ‘out of the box’ on most distributions. Windows users however need to download and install a third party application to watch OGG videos. However this is not really any different than a Windows user downloading any other kind of plug-in or add-on – such as Flash. Contrary to popular opinion Windows media player cannot automatically download the necessary codecs to play OGGs. The user must actively install the necessary software to play an OGG file.

This leaves the video maker in the invidious position of either making something slightly difficult for Windows users to play (OGG) or difficult for beginners to Linux to play (Flash), or use some other format. A downloadable codec isn’t hard to install on Windows for home users, but in a corporate environment where the desktop is locked down, this may be impossible. For Linux users, installing Flash player may be difficult but also goes directly against the principles of free and open source software, so some may just object to installing/playing it.

Clearly it’s up to the video maker to decide what format(s) to make their content available in. They may decide to make them available in Flash and OGG for example to keep a large proportion of users happy. Of course then the Mac users complain there’s no MOV download. There is no single format that will keep everyone happy, and the content creator may be left in a position where they have to create the content and then convert it to many formats.

What to record

Many new users are coming to Free and Open Source Software for the first time with easy to use Linux distributions such as Fedora, Ubuntu and Freespire, but they need help. Demonstration videos and tutorials can be a great way to ease new users in. These could be supplied with the operating system, separately on CD/DVD or downloadable or streamed from theweb.

Even those users who have some experience of Linux can gain from watching demonstration videos as they can learn about applications, frameworks and environments they've not used before. Videos should of course be tailored to the intended audience with careful consideration taken when choosing subject matter, depth of coverage, appropriate language and use of jargon and speed being critical factors.

Short videos showing specific tasks can be very useful for the novice, but as there are so many small tasks that a user does in a day there’s a lot of potential content to make. Short videos will be quick to download and digest. It’s arguable that an hour-long tutorial about Linux may well be incredibly valuable, but less accessible due to its size. Possibly a number of shorter videos totalling the same overall duration might be preferable as users pick and choose the individual videos to download.

A short video, under 5 minutes for example could show something fairly simple like how to configure an email client, or install an additional application. Shorter videos will also take less post-processing such as editing, audio/video cleanup or re-encoding to other formats than a long video. Human beings have short attention spans too, so keeping them short might make them more digestible. There’s also the limitation of space in the player. Many portable media players are video-capable and as such users may wish to watch the video on one of those small form factor devices where disk space is at a relative premium compared to the desktop/laptop computer.

First time Linux users will likely find the desktop environment different from what they’re used to, applications may be hard to initially find and configure and concepts will often throw them off too. It would therefore be best to make videos which are based on what the user might see before any customisation / personalisation has taken place and prior to any additional applications being installed. Showing a tutorial video to someone where all the icons on the desktop look different not only from what they’re used to but also different from what they have in front of them in an out of the box install might well make them lesseffective.

The problem with this can be that it’s not easy to install a screen recording application on a system which is in effect an “out of the box” installation. Many screen recording applications need some dependencies which may not be part of the main distribution. Others need compiling from source code which will need a compiler and other build tools and libraries.

It may be necessary to use an arrangement of two computers to effectively record an out-of-the-box installation of Linux. One could run the basic installation of Linux whilst the other remotely records the first using freely available remote control tools such as VNC for example. Alternatively the second PC could be used as the build system for the tools required on the first. This would negate the need for any additional compilers and libraries from being installed on the demo PC and as such would render the first computer a ‘faithful’source.

How to record

Unsurprisingly there are a diverse range of options for those wishing to record demos on Linux. This is true in the number of applications but also the technical mechanism by which the demo is recorded. Some applications record directly what the user is doing, others require a connection to a server running locally or on another computer. In addition many applications offer recording directly to distributable formats, others require some post processing. A few allow for audio to be recorded at the same time as the demo is being created whereas others require the audio track to be added later.

Recording the current session

Istanbul, recordmydesktop, xvidcap, ffmpeg and gstreamer can all record whatever you currently have on your screen. This is a quick and easy way of creating videos as it doesn't require anything more than your current computer, which is already running Linux right? All of these applications can record directly to a re-distributable media, although not all the same format. This is great if you want to knock up a quick video and make it available with little or no fuss.

Recording a remote computer

This is where things get a little more complex. The definition of "remote computer" can conventionally be seen as another physical machine that you remotely control via a tool such as VNC over a network. It can also refer to controlling a virtual machine running on the local host. Using products like VMWare, Parallels or QEMU it’s possible to run a computer within a computer.

The benefit to a virtual machine is that the ‘guest’ operating system and applications you record may differ from your day-to-day ‘host’ environment and the applications of choice you run on your main computer (the one doing the recording). This is also beneficial if you wish to demonstrate what to do with an operating system "out of the box" which may be difficult to replicate on your main computer which has lots of extra software already installed.

Windows users who wish to demonstrate Linux often use this method. Windows may be their full-time operating system of choice on the desktop, but within a virtual machine they can run Linux part-time. Using a Windows based recording product such as Camtasia or Wink they can record the contents of a window. The content of the window is the software running the virtual machine. Of course this is an easy way out for someone who is not a Linux expert to demonstrate Linux, but it does mean running Windows on the host, which of course I’m not going to advocate doing!

Recording a remote computer could also mean controlling a VNC session on the same computer - perhaps started under another user account. The benefit here is that it's very quick and easy to setup a new user on your main computer, no additional hardware or software (other than a VNC server) is required. Using this method you can maintain settings in that new user account which differ from your own main account. For example you could demonstrate how to setup an email client without messing up your own personal email client settings.

Most of the applications listed here are able to record a remote computer if you can get a window up running the VNC client, then you simply record just that window. You can indeed run your VNC client full screen and record the entire desktop if that's easier. One problem with recording a VNC client is that when the mouse cursor leaves the constraints of the of the VNC window to your desktop it leaves the mouse on the VNC window stuck at one edge of the screen. When you subsequently move the mouse back into the VNC window (somewhere else) the mouse cursor leaps to the new location. This can be disconcerting for a viewer to see the mouse cursor leaping around.

Single stage recording

In single stage recording the application doing the recording does so to an immediately distributable format file. This might be a flash file which can be embedded into an HTML page or it could be a video encoded using OGG/Theora. Very quickly and easily it’s possible to create content that can be distributed. Alternatively the output can be post-processed, maybe adding or editing the audio track, or to add a “header” and “footer” to the video possibly giving it a more formal format.

Two stage recording

Some screencasting applications record to an internal format, or to a file which is not easily viewable such as a raw VNC session. A second stage is then required to convert that file to something that is easily viewable by others. The format conversion may requires third-party tools or they may be supplied with the screencasting application itself.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Very interesting read... thx

Very interesting read... thx for all the pointers and advice, looking forward to producing a library of screencasts soon :D

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options