screen_sharing.png

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?

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
54
55
56
57
58
59
60
61
62
#!/bin/bash

# AUTHOR:   (c) Rob W 2012, modified by MHC (http://askubuntu.com/users/81372/mhc)
# NAME:     GIFRecord 0.1
# DESCRIPTION:  A script to record GIF screencasts.
# LICENSE:  GNU GPL v3 (http:// 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,

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: maketecheasier | byzanz | AskUbuntu

Fuente: atareao

¿Quién está en línea?

Hay 24372 invitados y ningún miembro en línea