Réaliser un screencast au format GIF animé sous Linux

Rédigé par thomas - - Aucun commentaire

L'intérêt du GIF, c'est qu'il combine l'attractivité de la vidéo avec la facilité de diffusion d'une image. Idéal pour une démo sur un chat, dans un email ou pour faire le malin sur Twitter.

Voici un petit mode d'emploi pour sélectionner une zone de votre écran et enregistrer une courte copie d'écran animée (screencast), le tout grâce à un script bash réutilisable à tout moment.

Dépendances

Commencez par installer xrectsel. C'est un petit programme qui détermine les coordonnées de la zone que vous allez sélectionner (les modalités d'installation sont décrites dans le README).

Installez ensuite byzanz, qui va faire l'essentiel du travail.

sudo apt-get install byzanz

Le script

Une fois lancé, le script qu'on appellera par exemple screentogif vous donne la main pour choisir la zone de l'écran qui vous intéresse, s'endort pendant 10 secondes pour vous permettre de tout préparer, puis enregistre tout ce qui s'y passe pendant x secondes (5 secondes par défaut, ou en fonction d'un paramètre numérique : screentogif 20).

Pour finir, il met le fichier .gif à votre disposition sur votre Bureau.

Voici la bête :

#!/bin/bash

# Délai d'attente avant le démarrage
DELAY=10
# Notification sonore qui vous indique que l'enregistrement va démarrer, ou se termine
beep() {
    paplay /usr/share/sounds/KDE-Im-Irc-Event.ogg &
}

# Duration and output file
if [ $# -gt 0 ]; then
	echo Enregistrement pendant $@s vers recorded.gif
    D="--duration=$@ $HOME/Bureau/recorded.gif"
else
    echo Enregistrement standard pendant 5s vers recorded.gif
    D="--duration=5 $HOME/Bureau/recorded.gif"
fi

# xrectsel
ARGUMENTS=$(xrectsel "--x=%x --y=%y --width=%w --height=%h") || exit -1

echo Attente de $DELAY secondes avant le démarrage de byzanz
for (( i=$DELAY; i>0; --i )) ; do
    echo $i
    sleep 1
done
beep
byzanz-record --verbose --delay=0 ${ARGUMENTS} $D
beep

Voilà un script qui a toute sa place dans votre scriptothèque personnelle !

Merci à Rob W. dont j'ai bêtement repris la contribution (en anglais). Il y explique également comment réaliser la même opération sur l'intégralité d'une fenêtre donnée.

Oh, et un dernier mot : vivement un meilleur support d'APNG pour pouvoir se passer du GIF !

Un soucis ? Vérifiez à tout hasard que :

  • Les quelques commandes utilisées ici sont bien les mêmes pour votre distribution (ici, Linux Mint). Par exemple, le gestionnaire de paquets de Fedora, Red Hat et CentOS est Yum, et pas apt-get.

Écrire un commentaire

Quelle est la première lettre du mot jtnv ?