2009-01-05

Making a screencast from Ubuntu 8.10

(Hopefully I'll get back to this post with more details later. Bug me if I've left out something important.) I've been planning to make a couple of Norwegian Linux screencasts for some time, and yesterday night i sat for several hours to try to figure out the best way to do it. After figuring out most details I guess there is enough stuff interesting details to make a new blog post.

First attempts: Istanbul and Byzanz

Istanbul looked very promising, but after a couple of failed attempts (flickering in output video) I gave up. Byzanz seemed so limited that I didn't care to even test it.

Next attempt: vnc2swf

Back in September (according to timestamps on the recorded files) I tried vnc2swf, and got impressed by the ease of use and the size of the recordings. So I decided to give it another try. The reason why I didn't just use it in the first place this time was because of a gut feeling that there was some tricky detail I had to figure out. I was correct. Getting started is easy enough (here is a recipe that helped me getting started: Creating training movies with VNC2SWF. It describes the whole process, including how to record just a piece of your desktop.) Problem was just that the resulting file sizes quickly reached above 2 MB for just a few seconds of recording the terminal. Trying to find a solution to this problem I sat until 2 am in the morning before I went to bed, adjusting settings, using the edit program that comes with pyvnc2swf and trying different versions of pyvnc2swf. I also switched off desktop effects and tried to record from KDE. A funny detail I noticed was that recordings from my terminal window seemed to be bigger than recordings of nautilus. Today I found the solution: I just switched off the transparent background in gnome-terminal, and the video sizes was back to acceptable values. Inspired by the success of turning of the transparent background in the terminal, I went back to istanbul to see if the recordings would flicker less when I'd turned off transparency on the terminal background. Disappointment: I didn't. Then I clicked a checkbox saying "record 3D", and suddenly the recordings where OK. Summary: I now have two working solutions for recording desktop screencasts. :)

More information

Here are some more details that might be interesting if you want to record screencasts under Ubuntu Intrepid:
  • Resizing a window so it fits into your screencast: http://stackoverflow.com/questions/288512/resizing-a-window-to-a-set-size-in-linux.
  • The pick feature in x11vnc mentioned at Creating training movies with VNC2SWF is nice, but for some reason it doesn't include window decorations. Luckily x11vnc allows you to specify exactly what piece of the screen you want to record with the clip argument, e.g: -clip 640x480+600+400 .
  • pyvnc2swf documentation mentions pymedia. There's no package for it under Ubuntu 8.10 (Intrepid Ibex), but here's a howto that describes the process (I didn't find g++-3.4 in the repositories, and I had to use libmp3lame-dev instead of liblame-dev. Then, when I tried to compile it, I got an error, but I just continued to install it using checkinstall, and it seemed to work fine anyway.) Oh, yes, here is the howto pymedia on Ubuntu Hardy Heron.
  • Edit 2009-01-05: I was searching for a place to download recordwin.sh, until I discovered that it was included in the tar.gz together with the rest of the stuff.