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.