Von einer KVM/QEMU Virtuellen Maschine kann zu beliebigem Zeitpunkt eine Bilddatei des aktuellen Bildschirminhalts angefordert werden.
Diese Anleitung erklärt wie man via libvirt/virsh diese Bilder in regelmäßigen Abständen speichert und diese dann zu einem Video kombiniert.
Am System müssen bc, convert sowie bc vorhanden sein. Unter Void Linux installiert man die entsprechenden Pakete beispielsweise via xbps-install -Su ImageMagick ffmpeg bc.
Umgebung definieren
Diese Konstanten müssen im Verlauf der gesamten Anleitung korrekt gesetzt sein.
VM=name_der_virtuellen_maschine
BILDER_PRO_SEKUNDE=5Bildschirmfotos regelmäßig abspeichern
DIR=`mktemp --tmpdir --directory $VM-screenrecording-XXX`
IMG=`mktemp --tmpdir $VM-current-XXX.ppm`
VERZOEGERUNG=`echo "scale=2 ; 1/$BILDER_PRO_SEKUNDE"  | bc`
echo 'Aufnahme ...'
echo '(Strg-C zum Beenden)'
while :; do
        virsh qemu-monitor-command $VM --hmp screendump "$IMG" >/dev/null
        if [ -s $IMG ] ; then
                convert "$IMG" "$DIR/`date +%s.%N`.jpg" && rm "$IMG"
                sleep $VERZOEGERUNG
        else
                echo "Fehler: $IMG ist leer" >&2
        fi
doneBilder in eine Videodatei zusammenführen
ffmpeg -v error -pattern_type glob -codec copy \
        -framerate $BILDER_PRO_SEKUNDE \
        -i "$DIR/*.jpg" "$DIR/$VM.mkv" 
        && rm -R "$DIR/"*.jpg && echo "$DIR/$VM.mkv" 