I needed to record screencasts to demonstrate the bug I was facing in Flash. I’ve used different methods of capturing desktops before this particular instance too (most notably for ThinkQuest, although the screencasts were never used). You could act all geeky and do everything the hard way from the terminal. Or, you could use software which makes this easier. I’m going to mention the two most useful options that you have. Both of them spit out their output in Ogg Theora format which any self-respecting media player on Linux (or VLC Media Player on other platforms) can play back. The beauty of Ogg Theora is that you can create high-resolution, high-quality screencast files which are quite small in size. (This last bit is especially useful if you need to transfer the files to someone / upload it online – generally true in the case of screencasts.)
One which I’ve tried is Istanbul desktop session recorder. You could call it the point-and-shoot camera of Linux screencasting. Launch the application and it will sit in the notification area. Rest of the menu options are quite easy with explanations presented when you hover your mouse pointer above the icon. The trouble with Istanbul – apart from the wacky name – is that the resulting video often has segments which are completely out of sync and blinking akin to a tubelight. On playing back the video you’ll find that Istanbul seems to be continuously pausing and then restarting video recording. Nevertheless, I’ve faced this problem only in Ubuntu 8.10 and the software otherwise worked on earlier Ubuntu releases. Maybe it still works for other distros. Ubuntu users can easily install both / either application from ‘Add/Remove’ or apt-get.
The software you’d actually find useful is recordMyDesktop (their camelCase usage, not mine). There’s a command line version and a graphical front-end for it called gtk-recordMyDesktop. Similar to Istanbul, rMD will add an icon to your notification area. However, unlike Istanbul, rMD offers you way more customization options through the GUO interface. One tip – do NOT enable ‘on-the-fly encoding’ because it may cause considerable lag / jitter in your video of you haven’t got a powerful processor. This isn’t something which affects screenrecording because the encoding can be done (automatically) after the recording has been made.
gtk-recordMyDesktop also allows you to choose video quality, sound quality (and whether you want it in the first place – if you don’t, uncheck the box in front of sound quality), and the area of desktop to be recorded. By default, the whole screen is captured but if you wan’t to restrict capture area to a particular window, then click the ‘Select Window’ button and then click using the crosshair pointer in the window area you want. You can even choose a smaller area by dragging the crosshair pointer and selecting a limited area.
To make a screencast to show off uber-cool 3D desktop effects, don’t forget to enable ‘Full shots at every frame’ (under ‘Advanced > Performance’). I would also suggest you to increase the frame rate from (default) 15 fps to at least 25 fps to make a ‘sensible’ recording. Since the output is an Ogg Theora file you’ll anyway be getting a small-size file as output, tweaking this option won’t bloat up the filesize.