sábado, 18 de abril de 2009

Creando capturas del escritorio en video

Bueno vamos a los bifes...

Con la necesidad de crear una serie de demos y algunos tutoriales surgio la idea de armar unos videos con audio conteniendo la captura de la pantalla y con la voz del operador en off.

Rapidamente por buscar en Google las experiencias de los demas pude ver que la mejor opcion (o al menos la que me convencio) fue recordmydesktop, entonces me dispuse a instalarlo.
Viene en su version de linea de comandos y para los que no les gusta hay un GUI que se lama gtk-recordMyDesktop.
Como hacer, bien.. es sencillo:

# sudo apt-get install recordmydesktop

y si quieren la version grafica, yo la recomiendo porque es muy intuitiva y menos dura para los quejosos y para los practicos tambien.

# sudo apt-get install gtk-recordmydesktop

otra forma es por medio del manejador de paquetes, en mi caso Adept

una vez que se instala podemos ir a una consola y para usarlo

# recordmydesktop

esto comienza la captura, la salida en la terminal sera algo asi
# recordmydesktop
Initial recording window is set to:
X:0 Y:0 Width:1280 Height:800
Adjusted recording window is set to:
X:0 Y:0 Width:1280 Height:800
Your window manager appears to be KWin

Initializing...
Buffer size adjusted to 4096 from 4096 frames.
Opened PCM device hw:0,0
Playback frequency 22050Hz is not available...
Using 44100Hz instead.
Recording on device hw:0,0 is set to:
2 channels at 44100Hz
Capturing!

entonces esta grabando y cuando queremos parar presionamos ctrl-c y listo la salida se graba en un fichero que por defecto se llama out.ogg

Shutting down.Saved 23 frames in a total of 22 requests
....
Encoding started!
This may take several minutes.
Pressing Ctrl-C will cancel the procedure (resuming will not be possible, but
any portion of the video, which is already encoded won't be deleted).
Please wait...
[100%]
Encoding finished!
Wait a moment please...

Done.
Written 443552 bytes
(369984 of which were video data and 73568 audio data)

Cleanning up cache...
Done!!!
Goodbye!
#

si lo quieren ejecutar desde el modo grafico en Kubuntu estara en la opcion Multimedia/gtk-recordMyDesktop
La verdad podria ser mucho mas extenso pero hay miles de tutoriales por ahi de como usar este programa y por cierto es por demas intuitivo, asi que voy al meollo que me lleva a escribir esta entrada...

Bueno todo funciono perfecto cuando lo instale en un equipo que era nuevo y le habiamos instalado Kubuntu 8.04 LTS hacia unos dias, grabamos unos cuantos videos y todos quedamos contentos con los resultados.

Trate de hacer lo mismo en mi portatil Sony Vaio que la tengo instalada tambien con Kubuntu 8.04 LTS pero esta pobre viene siendo actualizada y recontra actualizada desde la version 6.0 y por esas cosas de la vida hay alguna biblioteca que no esta igual y lo que me sucedia es que al ejecutar recordmydesktop luego de unos segundos el programa se quedaba congelado, durmiendo sin actividad.
Busque y recontra busque en la red hasta que di con un bug relacionado con este tema se trata del Bug 244261que aparentemente estaria en la libx11-6,
probe de reinstalarlas y nada asi que ni se gasten.
Me puse a probar las distintas opciones y me di cuenta que este bicho flipaba por alguno de los efectos de escritorio de X, entonces me puse a probar las distintas opciones en la linea de comandos ... et voila!
lo saque...

utilizando el modificador --full-shots ya no hay problemas.

entonces usando

# recordmydesktop --full-shots

o en el modo grafico dentro de Avanzados, "Capturas completas en cada cuadro"=Habilitado

con eso va a funcionar.

Para los mas tecnicos, aparentemente el problema se produce entre las bibliotecas libxcb-xlib.so.0 y libX11.so.6, se trata de algun tipo de error al grabar solo los fragmentos de video que han cambiado, es por eso que el modificador --full-shots que lo que hace es copiar la pantalla entera sin ver lo que ha cambiado hace que ya no se produzca el error.
Y para los que se preocupan por si esto ocuparia mas espacio en el resultado final o haria un archivo mas grande, pues no se estresen ya que cuando se codifica el video, se ignoran las partes repetidas igual que cuando se comprimen archivos.
este es el error que tira ...

"Locking assertion failure"
in
#0 /usr/lib/libxcb-xlib.so.0 [0x7f1caa44997c]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x24) [0x7f1caa449a84]

#2 /usr/lib/libX11.so.6 [0x7f1cacc18260]
#3 /usr/lib/libX11.so.6(XNextEvent+0x62) [0x7f1cacc00c12]
#4 recordmydesktop [0x409fad]
#5 /lib/libpthread.so.0 [0x7f1cac0b63f7]
#6 /lib/libc.so.6(clone+0x6d) [0x7f1caa721b2d]




Espero que les sirva yo renegue bastante hasta que encontre como resolverlo, pueden ver el tema en https://bugs.launchpad.net/bugs/244261.
Que les salgan lindos sus videos, saludos.

MF

No hay comentarios:

Publicar un comentario