Grabando vídeo de lo que hacemos en pantalla

IMPORTANTE: Gracias a un comentario a este mini-tutorial he descubierto istanbul. Permite grabar directamente desde el panel de gnome, sin ninguna complicación. Además, el vídeo generado está en formato ogg, con lo que más libre imposible.

He compilado el paquete y está disponible en el repositorio de linex 2006. Se puede instalar directamente desde linex 2006 haciendo un clic aquí. Gracias a skyhook por la información.

Evidentemente el tutorial sigue siendo válido, pero ahora no merece la pena hacer la grabación de esa manera, a no ser que se necesite exportar a formato avi. Teóricamente, eso se puede hacer con el archivo que istanbul genera mediante:

transcode -x ogg -i desktop-recording.ogg -o mivideo.avi -y xvid

pero me da siempre el error (extract_ogm.c) OGG stream 1 is of an unknown type (bad header?). Así que de momento, por si alguien necesita el avi, a continuación sigue el tutorial «antiguo«:

Algunos amigos me han preguntado cual es la mejor forma de grabar un archivo de vídeo de lo que se hace en el ordenador en LinEx. Sabemos que hay algunas aplicaciones que permiten hacerlo en formato flash, pero no me acaban de convencer tanto por ser aplicaciones propietarias como por estar muy limitadas las capacidades de edición. Si lo grabamos en vídeo podemos, desde incorporarlo a un dvd para verlo en la TV, como usar cualquiera de los editores de vídeo disponibles para retocarlo y añadir efectos.Así que al grano. Los afortunados usuarios de linex 2006 sólo tendrán que hacer clic en los enlaces que están aquí para instalar la(s) aplicacion(es) necesaria(s).

El truco consiste en montar un servidor de vnc, y usar la aplicación vncrec para grabarlo, con un formato especial, en nuestro ordenador. Después usaremos transcode para convertirlo a un archivo avi.

A continuación se exponen estos pasos detalladamente:Primer paso: arrancar el servidor de VNC.Hay dos formas de hacerlo, una más sencilla si disponemos de dos ordenadores en red, y una algo más complicada si sólo disponemos de un ordenador. El resultado final es el mismo cualquiera de los métodos usados. Con un sólo ordenador:

  • Instalamos el paquete vncserver
  • Ejecutamos en una consola: vncserver -depth 16 -geometry 800×600 (las dos opciones que se han añadido a vncserver, 16 bits de color y resolución de 800×600, son para reducir el tamaño del archivo final, no son imprescindibles para realizar la grabación). Nos pedirá una contraseña: introducimos la que queramos (por dos veces)

Con dos ordenadores (los sgtes. pasos se ejecutan en uno de los dos):

  • Instalamos el paquete x11vnc
  • Averiguamos su dirección de red, p. ej. ejecutando /sbin/ifconfig
  • Ejecutamos en una consola x11vnc -passwd micontra, donde micontra es la contraseña que queramos usar

Segundo paso: Realizar la grabación en formato vnc.

  • Instalamos el paquete vncrec. Si estamos usando dos ordenadores lo hacemos en el ordenador distinto al del paso anterior.
  • Abrimos una consola y ejecutamos: vncrec -record sesion1.vnc ordenador. Donde ordenador es localhost:1 si estamos usando un sólo ordenador, o la dirección de red del primero, si estamos usando dos ordenadores.
  • Nos pedirá la contraseña que hemos introducido en el paso 1. La tecleamos y pulsamos intro.
  • Aparecerá una ventana con un escritorio completo en el que podremos hacer lo que queramos grabar. Para terminar la grabación basta con cerrar esa ventana. El resultado será nuestra grabación disponible en el archivo sesion1.vnc.

Si queremos ver el resultado en formato vnc, basta con ejecutar vncrec -play sesion1.vnc y veremos lo que hemos grabado.

Si antes de grabar queremos preparar el escritorio porque, por ejemplo, no queremos grabar mientras se abren los programas que vamos a usar, podemos ejecutar: xvncviewer ordenador, realizar lo que necesitamos y cerrar la ventana, antes de ejecutar vncrec. Obviamente, para poder hacer eso, es necesario haber instalado el paquete xvncviewer.

Tercer paso: convertir a archivo de vídeo.El archivo sesion1.vnc resultante del paso anterior es ya un archivo de vídeo que se puede reproducir en cualquier ordenador usando vncrec. Ocupa poco espacio y tiene la máxima calidad posible. Sin embargo, ese no es un formato común de vídeo, por lo que muy probablemente querremos convertir nuestro vídeo a otros formatos más conocidos que puedan ser reproducidos por mplayer, totem, etc. o grabados en un dvd. Explicaré el paso a formato avi con compresión divx porque es uno de los que mejor ratio de compresión tienen y su uso está muy extendido.

Antes de empezar, es preciso aclarar que en el paso a otro formato se perderá calidad, y la conversión puede llevar mucho tiempo, especialmente si el vídeo es largo y se exporta a un tamaño grande, como los 800×600 pixels a los que se hizo la captura en el paso 2.

Estos son los pasos necesarios:

  • Instalar los paquetes transcode y libxvidcore4.
  • Ejecutar en una consola: transcode -x vnc –use_rgb -i sesion1.vnc -o mivideo.avi -y xvid -k -f 10 –dvd_access_delay 20
  • Si queremos que el archivo mivideo.avi tenga una resolución inferior a 800×600, debemos añadir a la línea anterior: -Z resolución, donde resolución es uno de los siguientes valores: 640×480, 720×480, 480×260, 320×172 o 240×128. Con eso conseguiremos un archivo de menor tamaño y en menos tiempo.

La conversión a formato avi puede llevar mucho tiempo, incluso varias horas, dependiendo de la potencia del ordenador y la duración y resolución del vídeo a generar.

Con eso acaba este mini-tutorial. Aunque haya quedado un poquito largo, es algo bastante sencillo. Sólo comentaría que sería bastante fácil de realizar en python o gambas una pequeña aplicación gráfica que usara los comandos anteriores, de forma que no hubiera que usar la consola para nada. Sería una buena herramienta para añadir a la sección de accesorios de LinEx en los colegios e institutos, por si alguien con algo de tiempo libre se anima…

5 comentarios en «Grabando vídeo de lo que hacemos en pantalla»

  1. Genial, no lo conocía gracias. Lo he compilado y añadido al repositorio de linex y funciona perfecto. Actualizo esta información

  2. Hola Paco, es raro, a mi me funciona. La diferencia entre el que está puesto y el que propones es que el de la entrada es el inicial de wink y el tuyo el de la página de descargas. Es raro…