7 septembre 2013

Ubuntu: un script bash pour capturer une fenêtre directement au format GIF

Hier je vous montrais une méthode pour convertir une vidéo OGV en une image GIF. Aujourd'hui je vais rester dans le même registre mais avec un script bash qui capture directement une fenêtre au format GIF.



Pour commencer il faut installer le paquet byzanz, donc ouvrez un terminal et tapez:

sudo add-apt-repository ppa:fossfreedom/byzanz
sudo apt-get update
sudo apt-get install byzanz

Ensuite, ouvrez votre éditeur de texte préféré, et copiez / collez ce script à l'intérieur:

#!/bin/bash

# Delay before starting
DELAY=10

# Sound notification to let one know when recording is about to start (and ends)
beep() {
paplay /usr/share/sounds/KDE-Im-Irc-Event.ogg &
}

# Duration and output file
if [ $# -gt 0 ]; then
D="--duration=$@"
else
echo Default recording duration 10s to /tmp/recorded.gif
D="--duration=10 /tmp/recorded.gif"
fi
XWININFO=$(xwininfo)
read X < <(awk -F: '/Absolute upper-left X/{print $2}' <<< "$XWININFO")
read Y < <(awk -F: '/Absolute upper-left Y/{print $2}' <<< "$XWININFO")
read W < <(awk -F: '/Width/{print $2}' <<< "$XWININFO")
read H < <(awk -F: '/Height/{print $2}' <<< "$XWININFO")

echo Delaying $DELAY seconds. After that, byzanz will start
for (( i=$DELAY; i>0; --i )) ; do
echo $i
sleep 1
done

beep
byzanz-record --verbose --delay=0 --x=$X --y=$Y --width=$W --height=$H $D
beep

Enregistrez le en lui donnant par exemple comme nom, byzanz-record-window.sh, et donnez lui les droits d’exécution en vous plaçant dans le même dossier et en tapant:

chmod +x byzanz-record-window.sh

Maintenant, c'est tout simple, quand vous souhaitez capturer une fenêtre au format GIF pour faire un tuto ou autre, vous tapez:

./byzanz-record-window 10 -c fichier.gif

Petite explication:

  • ./byzanz-record-window: va lancer le script.

  • 10: c'est le temps en seconde de la capture, vous pouvez changer cette valeur.

  • -c: c'est pour préciser à byzanz qu'il faut aussi capturer le curseur de la souris.

  • fichier.gif: c'est le nom de l'image GIF qui sera créée.

Une fois le script lancé, le curseur de la souris va se transformer en croix pour que vous puissiez sélectionner la fenêtre à capturer. Ensuite, un compte à rebours va débuter et la capture démarrera au bout de 10 secondes. Remarquez qu'il y a une fonction "beep", ce beep permet de savoir quand la capture commence et quand elle finit.



Et c'est tout !

Aucun commentaire:

Enregistrer un commentaire