I came across pyvnc2swf while looking for efficient ways to do screen capture. This is a really handy program that behaves as a VNC client and captures video of whatever happens. Of course, the VNC server can run locally so there need not be any network involved. The coolest part is that the video is output as a .swf file. The tool is even friendly enough to generate a little .html file so it’s ready to stick on a web page immediately.
There’s also an edit.py which can convert the .swf to .flv or .mpg, although Mpeg support requires PyMedia. I had trouble installing PyMedia, and have not gotten Mpeg support to work. Well, the .deb wouldn’t install on Debian Etch (because many of the required dependencies don’t exist for Etch), and it wouldn’t install on Ubuntu Intrepid Ibex (8.10) because liblame-dev is no longer an Ubuntu package (I think it’s been superseded by other packages but the PyMedia .deb doesn’t know that). Anyways, I suspect building it from source would work fine on Ubuntu but I haven’t tried it.
I also tried using a VGA2USB frame-grabber (several hundred dollars) from epiphan. I could only capture 640×480 video at 10~12 fps (not a problem by itself), and the results were quite noisy (too noisy to be useful for my purpose) in the ~500 MB .avi file that was produced. The .swf file of the same actions was less than 2 MB.