Making Flash Screencasts Under GNOME

2006-03-01 11:04:07 GMT

People say a picture worths thousand words. If that's true, then a screencast must worth probably millions of words. Seeing an application working in live, you can get a feel of it without any deployment on your part. Screencasts provide an immediate, solid proof that your application works and it's a uniquely powerful marketing, demonstration and teaching tool also.

I'm so satisfied with the first UC screencast I made yesterday, that I'm gonna detail how to setup an environment that is ideal for making flash screencasts in a streamlined fashion using vnc2swf and GNOME Vino.

You may ask why flash is better than any other alternatives and I'll answer this question as short and conscise as I can:

So here are the steps to set up a perfect home "screencasting studio":

  1. Create Cameraman: Create a special account dedicated for making screencasts: adduser cameraman.
  2. Create a GDM Launcher: Create an custom application launcher on your panel with the command field: "sh -c "zenity –question && gdmflexiserver"". Pressing this button should fork another X server with GDM. Thanks Dömi for letting me know about gdmflexiserver.
  3. Log in as cameraman in parallel using the nifty button we've just created.
  4. Set optimal resolution for capturing. Click to GNOME Menu > Desktop > Preferences > Screen Resolution. We should optimize screencasts for 1024×768, since it's the lowest common denominator for everyone who's not living in the stone age. I choosed 928×696, because it should fit fairly well in a maximized browser window on a desktop using 1024×768.
  5. Adjust frequency: In case your monitor frequency sucks and it cannot be set using the Screen Resolution dialog, I suggest you using xvidtune. Set the optimal values for your monitor for the given resolution and press the Show button that dumps the modeline of the actual settings to stdout which you should cut and paste to /etc/X11/xorg.conf.
  6. Set up user session switching buttons on the panel for convenience. Create custom launchers on both your desktop and cameraman's desktop using the command fields: "sudo chvt 8" and "sudo chvt 7" respectively. As a side note, if you hate sudo as much as I do, you can also use power.
  7. Fire up Vino as written in GNOME Journal.
  8. Install vnc2swf. I had to use vnc2swf, because pyvnc2swf-0.8.2 still couldn't capture mouse cursor despite what the documentation says.
  9. Create capturing button on the panel which calls the following script:
#!/bin/sh

RECORDINGDIR=~/screencasts
OUTFILENAME=`date +%Y-%m-%d--%H-%M-%S`
VNCHOST=localhost:0

cd $RECORDINGDIR
killall vnc2swf \
&& zenity --info --text "Recording successfully completed" \
|| vnc2swf -nowindow $OUTFILENAME.swf $VNCHOST > $OUTFILENAME.html

10. Create a screencasts directory in the home directory of cameraman. After a few screencasts, this directory should look like this:

laci@whisper:/home/cameraman/screencasts$ ls -l
total 3619
-rw-r--r-- 1 cameraman cameraman     583 Feb 28 17:43 2006-02-28--17-43-38.html
-rw-r--r-- 1 cameraman cameraman   97446 Feb 28 17:43 2006-02-28--17-43-38.swf
-rw-r--r-- 1 cameraman cameraman     583 Feb 28 17:44 2006-02-28--17-43-54.html
-rw-r--r-- 1 cameraman cameraman  104421 Feb 28 17:44 2006-02-28--17-43-54.swf
-rw-r--r-- 1 cameraman cameraman     583 Feb 28 17:47 2006-02-28--17-47-26.html
-rw-r--r-- 1 cameraman cameraman  124987 Feb 28 17:47 2006-02-28--17-47-26.swf
-rw-r--r-- 1 cameraman cameraman     583 Feb 28 18:19 2006-02-28--18-17-40.html
-rw-r--r-- 1 cameraman cameraman 3354217 Feb 28 18:19 2006-02-28--18-17-40.swf

Happy screencasting!