Home Home
Sign up | Login

Deprecation notice: openSUSE Lizards user blog platform is deprecated, and will remain read only for the time being. Learn more...

bmwiedemann

coder, tester, poet

Author Archive

making of the openSUSE install video

April 29th, 2010 by

Videos of software can have many good uses. You can have tutorials or a quick-start how-to illustrated by a video that shows the steps you need to go.

However, creating such videos takes some effort. Especially hard to make is a video of an operating-system installation, which includes a bootloader and other low-level software where you can not run capture-software on the OS.

Being a member of the Testing Core Team, I wanted to automate the typical openSUSE installation workflow up to the point where the installed system first started, because if installation media would not get to that point, it could prevent testers to try the remaining software.

To do this automation, I employed KVM (the much fancied Kernel Virtual Machine). As it is a variant of QEMU, it also has all those many useful options to adjust its behaviour to ones liking. One of those options allows KVM to be remote-controlled via the management-console. You can (among others) send key-presses, move/click the mouse and capture screenshots.

Putting all this together, I got a series of many images. So the next logical step was to run ffmpeg2theora on those images to create with free tools and free codecs a .ogv video file that has an even smaller size and better quality than mpeg[124]. Plus it can be easily viewed in firefox&co at high speed.

The results can be seen on http://www3.zq1.de/bernhard/mirror/opensuse/video/

This is still work in progress. KVM might have issues. e.g today I found, that I could speed up the network from 290kB/s to over 30MB/s by changing the emulated network device model from e1000 to virtio. With this, a network install from a fresh proxy cache took only 34 minutes instead of 95.

There is some more info in  http://lists.opensuse.org/opensuse-factory/2010-04/msg00439.html

(note that my initial test-runs were flawed because they used old MS5 packages and thus hit well known bugs in those)

What do you think: What can I improve? Can this technique be put to other good uses?