Capturar la pantalla

En ocasiones he necesitado hacer un vídeo para explicar cómo hacer algo de manera más cómoda. En Linux he encontrado multitud de opciones para capturar la pantalla. Voy a hablar un poco de cada una.

Para hacer un vídeo de la pantalla completa con sonido

Para eso se puede usar VLC. Este reproductor de vídeo puede hacer prácticamente de todo. Si queremos capturar la pantalla nos vamos al menú Medio > Convertir y seleccionamos de los Dispositivos de captura el escritorio. Podemos decir la tasa de fotogramas por segundo y luego nos da opción de seleccionar el tipo de compresión, calidad…

Para hacer un vídeo de la pantalla completa o no con sonido

Otra opción es usar el programa Recordmydesktop, que tiene una interfaz gráfica llamada gtk-recordmydesktop. Por línea de comandos da muchas más opciones, pero si es para un vídeotutorial sobre una ventana concreta funciona muy bien.

Para hacer un GIF animado a partir de las capturas

Cualquiera de las opciones anteriores nos puede servir para hacer la captura. Luego podemos convertir en gif con estos pasos:

$ mplayer -ao null <vídeo> -vo jpeg:outdir=<salida>

Hay que tener en cuenta que generará muchas imágenes jpeg, por lo que es recomendable crear un directorio de salida temporal.

Luego, podemos entrar al directorio de salida y convertir todos los jpeg en un gif animado:

$ convert *.jpg output.gif

Y por último, optimizar el tamaño del gif:

$ convert output.gif -fuzz 10% -layers Optimize optimizado.gif
Con la opción -fuzz 10% unifica colores parecidos, mejorando la compresión.

Para hacer diréctamente un gif animado

Se puede usar el programa Byzanz.

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

$ byzanz-record –duration=15 –x=200 –y=300 –width=700 –height=400 out.gif

En este enlace ofrecen unos scripts bastante útiles para el programa.

Capturar una terminal en un GIF

La terminal suele ser un fondo de un color sólido con letras y una gama de colores limitada. Hacer un vídeo que usa un formato de compresión con pérdidas y pasar por jpg para transformar en GIF implica añadir al gif los defectos típicos del jpg en ilustraciones.  Byzanz soluciona este problema, de hecho es el más recomendable. Pero lo debes instalar y en Ubuntu 12 o 13 no está en los repositorios.

Así que vamos a usar un método más primitivo:

Vamos a usar la herramienta import que viene con Imagemagic. Este permite hacer capturas de pantalla en png de lo que queramos. Vamos a usar la opción -window para pasarle una ventana de la que capturará. Para ello necesitamos dos terminales. En una vamos a trabajar, mientras que en la otra, ejecutaremos un script para ir haciendo capturas. Puesto que tenemos dos terminales, necesitamos indicarle al script de dónde debe grabar. Para ello podemos usar el comando xwininfo que nos dice el id de la otra ventana. Por ejemplo:

$ xwininfo: Window id: 0x440f096

Luego se lo pasamos al comando import:

$ import -window 0x440f096 p.png

Ahora podemos hacer un script que haga una captura cada cierto tiempo:

$ for i in {1..200}; do sleep ‘0.2’; import -window 0x440f096 p${i}.png; done

Que hace una captura cada 0.2 segundos.

Luego podemos usar el comando convert y optimizar después:

$ convert p*.png output.gif

$ convert output.gif -fuzz 10% -layers Optimize optimizado.gif

Actualización 11-2016

He encontrado otro programa muy simple que también hace esto: Peek

 

 

Deja una respuesta

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