Sí, después de mucho tiempo por fin he conseguido un programa que realmente funciona a la hora de grabar vídeos del escritorio. Solo que este mecanismo… no es tan simple como parece. Solo el nombre ya asusta.
De todas maneras me molestaré en explicar como funciona y cómo podremos empezar a grabar vídeos.
Primero, unas cuantas consideraciones sobre esto:
1. vnc2swf, como podéis deducir, es una herramienta que se conecta por VNC a cierto servidor (en este caso, uno que montaremos localmente) para obtener las capturas de la pantalla; y que seguidamente guardará en formato SWF (es decir, película flash). Esto es una chapuza, pero como solía decir un amigo mío: “Las chapuzas informáticas siempre funcionan”
2. Usaremos x0vncserver (perteneciente al conjunto de herramientas de RealVNC) para exportar imágenes de nuestro escritorio por VNC, en vez de iniciar una nueva sesión de X por VNC a la que no tendríamos acceso físico. Teóricamente, con x0rfbserver también es posible hacer esto; pero ya he probado y la grabación no sale bien del todo, debido quizá a algún problema con la conversión de profundidades de color entre 24 bits a 32 bits.
3. vnc2swf no es, ni mucho menos un programa profesional ni estable (o eso me ha parecido); así que tampoco esperéis un resultado sorprendente. Y es muy posible que este ¿HOWTO? sea verdaderamente inútil por alguna extraña falta de compatibilidad o lo que sea.
4. No hay RPMs, ni DEBs, ni nada. Hay que compilar. Vale, qué rollo, pero es lo que hay, por eso recomiendo tener muchas ganas para juguetear con esto.
Así que una vez comprendido esto, empezaremos a bajarnos cosas. Lo primero es asegurarnos de que tenemos x0vncserver y vncpasswd instalado. Si no disponemos de estas herramientas en nuestro sistema, nos las descargamos de http://www.realvnc.com/download.html (obviamente, si no queremos pagar licencias, tendremos que usar la versión reducida, pero que nos llega de sobra)
Lo siguiente, es descargarnos las fuentes del vnc2swf. Podemos descargarnos la última versión en C aquí: http://www.unixuser.org/~euske/vnc2swf/
Hay una versión en Python, ésta parece no funcionar porque necesita no-se-qué paquetes (y tampoco me he molestado mucho, puesto que la versión en C es mucho más potente).
Bien, una vez descargado el paquete procederemos al típico ciclo de compilación de un programa. Es decir: Primero, descomprimir:
$ tar zxvf vnc2swf-0.5.0.tar.gz
Crear Makefiles, buscar bibliotecas y otras parafernalias con ./configure:
$ ./configure
checking for gcc… (cached) gcc
checking whether the C compiler (gcc ) works… yes
checking whether the C compiler (gcc ) is a cross-compiler… no
checking whether we are using GNU C… (cached) yes
…
Y finalmente, compilar e instalar:
$ make
# make install
(Lo de siempre, el # significa que estamos en una shell de root. Sería lo mismo que ejecutar sudo make install)
¿El ./configure ha fallado? Pues a leer lo que nos dice. Y es que hay que dominar un poco de inglés sin queremos saber por qué se quejan determinados programas.
Si ./configure sirve para algo es, entre otras cosas, para decirnos qué nos falta para llevar a cabo la compilación. Así que leed detenidamente los mensajes y el “config.log” generado por este script en el directorio de trabajo.
Una vez compilado todo esto, ya deberíamos poder empezar a grabar nuestras primeras capturas en movimiento. Para ello, tenemos que poner el servidor VNC de nuestra sesión de X en marcha, y a su vez para ello, configurar la contraseña de VNC. Así que ejecutamos:
$ vncpasswd
Password: Pon una contraseña aquí
Verify: Repite la contraseña
y seguidamente, ponemos el servidor de VNC a funcionar con:
$ x0vncserver -PasswordFile=$HOME/.vnc/passwd
Tue Oct 17 19:55:21 2006
main: XTest extension present - version 2.2
main: Listening on port 5900
Y con esto ya estaríamos preparados para exportar imágenes en movimiento. Ahora es cuando entra en juego vnc2swf: Minimizamos todas las ventanas de nuestro escritorio y abrimos otra consola (o bien, una pestaña más en el terminal que usemos, depende de nuestros gustos) en la cual ejecutaríamos esto:
$ recordwin grabacion.swf
Donde “grabacion” es un nombre arbitrario que le queremos poner a la grabación en cuestión.
Entonces, si nos fijamos, el cursor se habrá convertido en una cruz (o selección de precisión, para los pedantes) el cual usaremos para determinar qué ventana grabar. Haciendo clic sobre el escritorio, conseguiremos grabar toda la pantalla (por eso dije lo de minimizar todo)
Seguidamente, se nos presenta una salida como esta:
vnc2swf version 0.5.0
Copyright (C) 2002-2005 Yusuke Shinyama
- Based on VNC viewer version 3.3.7
Copyright (C) 2002-2003 RealVNC Ltd.
Copyright (C) 1994-2000 AT&T Laboratories Cambridge.
See http://www.realvnc.com for information on VNC.
VNC server supports protocol version 3.8 (viewer 3.3)
Password: Escribe aquí la contraseña de VNC
Tecleamos nuestra contraseña (la que hemos elegido con vncpasswd) y le damos al Enter. Entonces nos muestra algo como esto:
VNC authentication succeeded
Desktop name “x0vncserver”
Connected to VNC server, using protocol version 3.3
VNC server default format:
32 bits per pixel.
Least significant byte first in each pixel.
True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
Using default colormap and visual, TrueColor, depth 24.
Using viewer’s native pixel format:
32 bits per pixel.
Least significant byte first in each pixel.
True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
=== WriteInitMovie: Pid=6669, Opening file: “grabacion.swf” for a movie size (1280, 1024), frame rate 12.00…
=== [Recording]
Ese “[Recording]” nos indica que ya está grabando, y que ya podremos hacer tantas monerías como queramos (solo que ojo, esta herramienta consume espacio en disco tanto como los políticos chupan del bote, así que mejor que nos aseguremos de tener espacio de sobra).
Cuando nos cansemos, pulsamos Control+C en el terminal donde ejecutamos el recordwin, y en el directorio de trabajo se nos presentará un bellísimo fichero de extensión .html con una referencia a otro fichero .swf (ambos, con el nombre que decidimos darle con recordwin), que al abrir (y si tenemos el plugin de Flash instalado) podremos contemplar en él la grabación recién hecha.
¿Complicado, no? Normal, es una herramienta un tanto rudimentaria, pero es que no hay nada mejor (o al menos, yo no conozco nada) y si alguien sabe y hace el favor de recomendarme algo más productivo, sus sugerencias serán interesantemente escuchadas.
Por cierto, saqué un vídeo de unos 13MB (de 1280×1024 y que tarda una leche en cargar) y lo colgué en http://usuarios.lycos.es/haberweb/hello.html. Para verlo entero… recomiendo que descendáis al final de la grabación, esperáis a que cargue todo y luego le déis a rebobinar en el menú de contexto. Más que nada para no verlo a saltitos. Que 13 MB son muchos megas, incluso para un vídeo de un escritorio xD
Saludos
