Graba tu escritorio Ubuntu en una imagen GIF animada

En alguna que otra ocasión ya he escrito sobre como convertir una vídeo en una imagen animada con formato GIF, sin embargo, en esta ocasión el tema es crear la imagen animada de una grabación de pantalla.

Indudablemente la ventaja de este asunto es la de poder crear una sencilla ayuda al usuario mediante imágenes animadas.

¿Cómo realizar un screencast de tu escritorio en una imagen GIF?

atareao@trusty: -home-atareao-Escritorio_570.png

Byzanz

Byzanz es una sencilla herramienta de la línea de comandos que permite grabar el escritorio en una imagen animada con formato GIF. Aunque esta aplicación está desatendida, es decir, hace años que nadie trabaja sobre ella, la versión que se encuentra en los repositorios funciona perfectamente para los propósitos que nosotros tenemos.

Uso

La orden para utilizar byzanz es byzanz-record. Para probarlo solo tendrás que ejecutar la siguiente orden en un emuladro de terminal,

byzanz-record -d DURATION –delay=DELAY -x X-COORDINATE -y Y-COORDINATE -w WIDTH -h HEIGHT FILENAME

Así, los parámetros a modificar son los siguientes,

  • DURATION. Define la duración de la grabación en segundos.
  • DELAY. Este el tiempo que trascurre desde que ejecutamos la orden hasta que comienza a grabar.
  • X-COORDINATE, Y-COORDINATE. Define las coordenadas x e y, del área de la pantalla que se va a grabar.
  • WIDTH, HEIGHT. Define el tamaño del área a grabar.
  • FILENAME. Es el archivo en que se grabará la animación de nuestro escritorio.

El problema es que definir las coordenadas puede resultar algo tedioso, y sobre todo, es probable que no aciertes exactamente con lo que tu quieres grabar.

Una solución es precisamente crear tu propio script, con un diálogo que te permita introducir la duración de la grabación, y por otro lado definir el área a grabar marcando una ventana.

Un ejemplo de script es el que puedes descargar o copiar de la siguiente página y que reproduzco a continuación,

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/bash

# AUTHOR:   (c) Rob W 2012, modified by MHC (https://askubuntu.com/users/81372/mhc)
# NAME:     GIFRecord 0.1
# DESCRIPTION:  A script to record GIF screencasts.
# LICENSE:  GNU GPL v3 (https:// www.gnu.org/licenses/gpl.html)
# DEPENDENCIES:   byzanz,gdialog,notify-send (install via sudo add-apt-repository ppa:fossfreedom/byzanz; sudo apt-get update && sudo apt-get install byzanz gdialog notify-osd)

# Time and date
TIME=$(date +"%Y-%m-%d_%H%M%S")

# Delay before starting
DELAY=10

# Standard screencast folder
FOLDER="$HOME/Pictures"

# Default recording duration
DEFDUR=10

# Sound notification to let one know when recording is about to start (and ends)
beep() {
    paplay /usr/share/sounds/freedesktop/stereo/message-new-instant.oga &
}

# Custom recording duration as set by user
USERDUR=$(gdialog --title "Duration?" --inputbox "Please enter the screencast duration in seconds" 200 100 2>&1)

# Duration and output file
if [ $USERDUR -gt 0 ]; then
    D=$USERDUR
else
    D=$DEFDUR
fi

# Window geometry
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")

# Notify the user of recording time and delay
notify-send "GIFRecorder" "Recording duration set to $D seconds. Recording will start in $DELAY seconds."

#Actual recording
sleep $DELAY
beep
byzanz-record -c --verbose --delay=0 --duration=$D --x=$X --y=$Y --width=$W --height=$H "$FOLDER/GIFrecord_$TIME.gif"
beep

# Notify the user of end of recording.
notify-send "GIFRecorder" "Screencast saved to $FOLDER/GIFrecord_$TIME.gif"

Guarda este script como byzanz-gui (o cualquier otro nombre, según mas te convenga) y dale permisos de ejecución,

chmod +x byzanaz-gui

Por último, solo te queda ejecutarlo y ver que todo funciona correctamente. Para ello, en un emulador de terminal, ejecuta la siguiente orden,

./byzanz-gui

byzanz01.png

Esto te mostrará una ventana en la que deberás introducir la duración de la grabación en segundos,

atareao@trusty: -home-atareao-Escritorio_570.png

Una vez pulsado el botón aceptar el script te informará de que va a empezar a grabar en 10 segundos y de la duración de la grabación

byzanz02.png

Lo siguiente es que el script te informará de que se ha iniciado la grabación y la duración de la grabación, según el valor que hayas introducido previamente,

byzanz03.png

Una vez terminado todo el proceso, te mostrará una notificación, informándote de ello, y de donde ha guardado la grabación y con que nombre…

byzanz04.png

Conclusiones

Lo cierto es que esto da mucho de si, solo es cuestión de dedicarle un poco de tiempo para conseguir un script que se adapte perfectamente a tus necesidades, incluso seleccionando el área del escritorio que queremos grabar. Por supuesto que otra opción sería la de realizarlo en vídeo y posteriormente convertirla a imagen con formato GIF.


Más información,

3 comentarios en “Graba tu escritorio Ubuntu en una imagen GIF animada

  1. JO

    Cuando el entorno predeterminado para Ubuntu era GNOME2 existía un applet de panel que funcionaba de manera excelente con byzanz. Me pregunto porque nadie ha querido realizar una evolución de dicho applet para GTK3.
    En fin, muchas gracias por la información. Atareao…

    1. EL
      El atareao hace 10 años

      ¿Recuerdas cono se llamaba? ¿Web? Entiendo que será sencillo hacer un indicador…
      Saludos y gracias

      1. JO

        Byzanz – applet, literalmente. Te hablo de Lucid que ambos tuvimos en nuestro AA1. Incluso creo recordar que era dependiente y se instalaba automáticamente junto con Byzanz.

        Aquí he encontrado su código:

        http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/lucid/byzanz/lucid/files/head:/src/

        Acabo de encontrar un repositorio en GitHub con su código portado en GNOME 3, pero no lo he probado:

        https://github.com/threedaymonk/byzanz/blob/master/src/org.gnome.ByzanzApplet.panel-applet.in.in

        Y en este enlace de Ask Ubuntu, dan muchas posibilidades para realizar un screencast con GIFs:

        http://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast

        Gracias a ti por compartir como lo haces, Atareao.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *