Do you ever marvel at those step-by-step how-to product demos of software apps that end-users post on places like YouTube? It is often easy to spot these demo videos shot with cellphone cams or PC eye cams placed over the user’s shoulder.
But two cool Linux apps give you a the ability to record directly to a file whatever’s being shown on your computer’s monitor. RecordMyDesktop and Istanbul both record screen sessions into an Ogg Theora video file.
The Ogg file format is very common, so playback should not be an issue. If it is, many video players read and convert the Ogg format.
RecordMyDesktop is very easy to use on Debian-based distros. This app lets you record audio through the ALSA mixer or other options.
Istanbul could be a bit trickier for setting up desktop recording sessions, depending on your hardware. It also embeds audio using any of the installed audio options on your system. Plus, it can stream sessions to an Icecast2 server. This app works on Gnome, KDE, XFCE and a few other Linux desktop environments.
More Than Grabbing
Session recording software is the next step or two beyond screen capture applications. The screen capture apps I discuss here capture the equivalent of a freeze frame of your monitor’s image. The captured image can be the entire screen or one or more selected windows open on the desktop.
The screen shots shown in Linux Picks each week are captured with this type of application. But screen capture apps are too limited for actually showing the steps in a how-to procedure. Of course, you could take a series of screen shots and load them into presentation software such as OpenOffice Presenter or just click on each separate still frame.
However, session recording apps improve upon this viewing procedure. They actually let you capture a moving sequence. Thus, every menu item you open and every mouse click you perform is “filmed” for playback. This type of software is the equivalent of using a video camera pointed at your monitor.
Small Learning Curve
One of the drawbacks to using open source software is the typical lack of directions. Unlike Microsoft Windows software, most Linux software does not “ship” with user documentation. Even the help portion of the drop-down menu is usually blank or barely there.
I use this missing documentation characteristic as a measuring stick for ease of use. If I have to go online to track down detailed user instructions for an application, that is a good sign the product is not intuitive and could possibly be a poor choice.
That strategy played out well in reviewing recordMyDesktop and Istanbul. Both of these apps installed as expected and were instantly available for use without a system reboot. But after that, Istanbul fell short.
Not Always Easy
Another example of this ease-of-use factor is my experience with Wink. Colleagues recommended this session recording app for its high performance. It has strong annotation features and audio-embedding options.
But I found that Wink is not readily available in package manager format. I run several different Linux distros. So fiddling with the archived files and manual installation process through a terminal window was not worth the effort.
I usually like the hands-on manual approach. It brings back memories of my DOS box pre-Microsoft Windows days. But Linux developers take note. Giving desktop users no other option but manual install is akin to shooting Linux in the foot.
A Screen Video
RecordMyDesktop comes in two parts. You can use it with a simple command line tool or a simple interface.
The command line approach does basic tasks of capturing and encoding. But most users will probably want to bypass the CLI (Command Line Instruction) in favor of a really simple interface.
The command line tool for recordMyDesktop is based on the C programming language. You can choose between two frontends: pyGtk (gtk-recordMyDesktop) or pyQt4 (qt-recordMyDesktop). Both work equally well.
If you prefer the CLI approach, I suggest printing a list of commands. Detailing them here is not our goal.
To give you an example, start the app by typing the command: recordmydesktop . To stop the recording just press ctrl-c on the keyboard.
In GUI mode (Graphical User Interface) a red circle loads to the desktop panel. Right clicking on the red circle icon gives you basic features to check or uncheck.
Left clicking the red circle changes the icon to a white square. Right clicking the square starts the recording process. Left clicking again stops the recording.
When you load the app, a window pops open showing the desktop and a slide bar for video and sound quality. It is in this window that you refine recording options. Once set, unless you want to change the conditions, you can skip the window and click the red circle icon in the panel as noted above.
Press the Advanced button to get access to settings for Files, Performance, Sound and Miscellaneous. In the settings window you can also specify the working directory to save the file. Other buttons let you select a window on the desktop to record, save the file as, record and quit.
Once you stop the recording process, recordMyDesktop automatically encodes the file. It also saves it to the designated location. Click on the file to view it in the computer’s video playback software. In my case, that is the Totem Movie Player and the VLC Media Player.
I had considerable difficulty in getting Istanbul to work. It is very temperamental, it seems. The developer named this app as a tribute to Liverpool’s fifth European Cup triumph in Istanbul on May 25, 2005.
I run Ubuntu 10.04 on a desktop computer powered with an AMD processor. I also run the same OS version on a netbook powered with Intel’s Atom processor and two laptops. One runs on an AMD chip, the other runs on Intel Centrino.
I’m guessing the hardware variations account for my difficulties. Istanbul did not run well on any of these configurations. But it would barely run at all on the AMD systems.
I also run a version of Puppy Linux that accepts many of the software packages of the Ubuntu Lucid Lynx version 10.04. Istanbul works on the Gnome, KDE, XFCE and other Linux desktop environments.
One of my Ubuntu systems is configured with KDE. And one of my Puppy Linux versions runs XFCE. I had similar poor results no matter what variety I tried.
The recurring fault was not stopping the recording session when I clicked the icon. On some of my gear, the app became unresponsive. On other systems, the output saved and was viewable. But I couldn’t shut down or exit the app without restarting the OS.
A Trip to Istanbul
Using this app, assuming it works on your configuration, is similar to the procedure for recordMyDesktop. For example, the tray icon is the same big red dot. The icon changes to a white square on a left click. A right click opens a list of options.
However, as best as I can tell, Istanbul does not have the advanced features window that opens upon loading recordMyDesktop. But it does have a more extensive list of checkable options when I right click the tray icon.
And like recordMyDesktop, Istanbul also has a command line mode. You will have to do some heavy digging online, though, to find a list of commands.
Be careful with your expectations for embedding sound into your recorded desktop sessions. Audio support can be iffy.
Both apps rely on separate video and audio subsystems to merge both functions in a playback. So this puts a lot of trust in the quality of the computer’s audio hardware.
I found that some sound cards worked better than others when I tested both apps on my different desktop and laptop computers. Video is a safe bet. Audio will take some bet hedging.
Istanbul has never worked for me (unless I actually want to lock up my computer). GTK-RecordMyDesktop works well, when it works. However, it has often had problems with sound, and it can sometimes crash mid-session. On my Dell Precision laptop with Linux Mint Debian Edition, it doesn’t work at all.
I eventually gave up on these programs (and xvidcap as well), in favor of direct screen- and audio-grabbing with ffmpeg. It took a bit of tweaking to optimize the command-line parameters, but it has proven very reliable and robust. Capturing an area that’s smaller than the entire screen is an interesting fiddle; I usually capture 800×600, so I modified my wallpaper by placing a small dot at the top-left of the recording rectangle, and another at the bottom-right. I use Gnome’s sound recorder to set up the audio up properly, then run the following command from a terminal:
ffmpeg -f oss -i /dev/dsp -f x11grab -s 800×600 -b 5000k -r 10 -async 1 -g 300 -i :0.0+600,160 /home/chris/out.avi
(the 600,160 determines how much the recording area is offset from the upper-left corner of the full screen, which, in this example, is 1920×1080)
These settings give me a high-quality recording that I can then compress and process further with ffmpeg or avidemux.
Not the prettiest approach, but works every time!