Creating Screencasts in Linux with gtk-recordmydesktop
Recently I installed the amazing desktop Elive Compiz. After getting it up and running I decided I needed to get some screencasts of the desktop in order to show off what it could do. I thought the task would be simple. It wasn't. Although there are plenty of applications to handle capturing videos of a Linux desktop, some of them have trouble when you're using a desktop with Compiz enabled.
There was once a plugin for Beryl that worked with this. But since Beryl became Compiz, the developer of the screencast plugin found migrating to Compiz too difficult. Work ceased on that plugin. So I tried a bevyÂ of applications until I managed to get gtk-recordMyDesktop to work.
Installing the app
Installing the app was simple. Since Elive Compiz is a Debian based operating system it was just a matter of issuing the command (as root):
apt-get install gtk-recordmydesktop
Once the application was installed I found it in the Video menu of the E17 Applications menu.
You can also install gtk-recordmydesktop by doing a search for it in your Add/Remove Software utility.
Running the app
When you open up gtk-recordmydesktop the main window will open. As you can see (in the image to the left) the window immediately begins grabbing your root desktop window.
What you do from here is select the window you want to grab. When you click the "Select Window" button your cursor will turn into a fat "+" symbol when your cursor hovers over the window displaying the screen. What you want to do is click and drag that cursor over the section of the desktop you want to record. If you want to record the entire desktop you select the entire desktop.
Once you've done that you click "Record" and the gtk-recordmydesktop window will minimize. In the case of Elive Compiz it will minimize to a small red dot at the bottom left of your screen. This small red dot is what you click when you are finished recording.
When I created a video of Elive Compiz, with the default settings, the playback was so bad it
wasn't viewable. The defaults settings could grab all of the 3D effects. In order to get this to work I had to configure two options. To get to this options click the Advanced button from the main window. A new window will open (as shown in the image to the right) where you configure all advanced settings. Click on the Performance tab. There are two settings to change. The first setting is the Frames Per Second. The highest you can set this is 50, so max that baby out.
The next setting is the "Full shots at every frame". You need to enable this in order to capture any 3D effects. It should be auto-enabled when any compositing is use. In my case this did not happen.
Once you have made these changes, click the Advanced button again to get rid of the settings window. Now when you record your Compiz-enabled desktop you should have decent output.
The output of gtk-recordmydesktop is Ogg Vorbis Video (ogv). If you need to convert that format you can use a command-line tool like ffmpeg to covert to mpg like so:
ffmpeg -i input_filename.ogv ouput_filename.mpg
The quality of the ogv format is going to be much better than the mpg format when converted. There are ffmpeg settings you can tweak to try to raise the quality of your output. Play around with that to see how you can eek out the best quality. To get a peek at what both gtk-recordmydesktop and Elive Compiz can do, check out the sample video link I created below.
Some might say that half of the problem with Linux is wading through thousands of apps trying to find the good ones. I say that it’s half the fun. It’s like finding buried treasure when you stumble upon a gem. It kind of sounds like you went through that process before finding this one.
One would think that Windows has more apps made for it, and thus more to go through…
Vadim: I would venture to say that Linux has far more apps available than windows. You have to remember there are a TON of UNIX apps that are also available for Linux as well as BSD ports and so on. and since UNIX pre-dates Windows you can imagine how many apps are there.
I meant graphical ones usable by the common computer user.
damn crappy ATI support for linux!
Specially for people having problems to record audio or sound with a GNOME based GNU/Linux distro:
gtk-recordMyDesktop (records video + audio) and gnome-sound-recorder (records audio) can record both the system and the microphone sound. To choose the sound to be recorded open gnome-volume-control (from ALT+F2 for example), click on Hardware, then on Profile and there choose the corresponding option, depending on what will be recorded ..:
+ sound of the system: a) Analog Stereo Output; or b) Digital Stereo Duplex (IEC958)
+ sound from the microphone: a) Analog Stereo Duplex; or b) Digital Stereo (IEC958) Output + Analog Stereo Input
In gnome-volume-control, it may be necessary to choose “Off”, close it, open it again, choose the desired option and close it again.
Some of the other options may work sometimes, but they may record sometimes the system sound and sometimes the mic sound. And other options may record audio but could not permit to listen to the recorded sound. So it’s better not to use those options.
NB: system sound is the sound of what one can hear from the speaker. It can be a .ogg or .mp3, … song played by Totem, or a Flash music video of a web site, …
In Ubuntu I’ve tried xvidcap and gtk-recordMyDesktop. I’ve been able with both of them to record video and audio from the system or the microphone.
But gtk-recordMyDesktop has 2 problems:
a) When you click on stop it takes a lot of time to encode the video (in xvidcap you have it in the moment you stop the recording).
b) It uses a lot of space in a folder called more or less /tmp/rMD-session-xxxx. Sometimes is deleted after the encoding but sometimes not (keeps on growing) and you have to delete it before your linux partition gets full.
To be able to record the sound with xvidcap you just need to follow a few steps: