It's rather easy -- first, you need vnc2swf, and a vnc server.
Start the vnc server on a second X port:
vncserver -geometry 1024x768 :1
Then you can launch vnc2swf:
vnc2swf out.swf :1
That will connect it to the vncserver running on localhost:1, and will output the swf file to out.swf. Start the recording by hitting F9; hitting it again will pause, etc.
Now, to add sound, there isn't a nice way of doing it... but what you can do (and that's what I did) is to launch a sound recorder application in parallel, and start the recording at the same time as the video. At the end of your video recording, you should have the video (out.swf) and a sound file from your recorder app, say "voice.aif". You then need to convert the sound file in mp3 (use the mp3 encoder lame for example).
After that, you just need to add the mp3 to the swf file, and you can do that using edit_vnc2swf :
edit_vnc2swf.py -o final.swf -a voice.mp3 out.swf
The last step is to create a html file containing the following section:
<object width="1024" height="768"
<param name="MOVIE" value="final.swf">
<param name="PLAY" value="true">
<param name="LOOP" value="false">
<param name="QUALITY" value="high">
<embed src="final.swf" width="1024" height="768"
play="true" align="" loop="true" quality="high"
Note that you need to set the same dimension as the video, else you'll have artifacts.
And... that's it :-)