Problema con el sonido de XVidCap

Imagen del programa XVidCap en KDE 4.5, OpenSuse 11.3 Linux

En este artículo comentare un poco los programas que hay para grabar screencast en linux (grabar el escritorio), como hacer funcionar el sonido en XVidCap, como grabar el escritorio en linux con un PC de bajos recursos con XVidCap y algunas opciones fundamentales de XVidCap. También haré un copy & paste de algunos comentarios muy útiles, que hicieron en este post.

Se sabe que en Linux no hay programas fabulosos para grabar screencast como Camstasia Studio (en Windows). Y los programas para grabar Screencast en Linux mas populares piden muchos recursos para grabar el escritorio (RecordMyDesktop, RecordItNow) y no todos tenemos un PC en el cual sea liviano correr este tipo de programas. Y también hay muchos de estos programas que no funcionan o cuesta hacerlos funcionar.  Uno de los programas que no funciona bien en Linux es XVidCap, por que XVidCap tiene problemas al grabar sonidos por que de forma predeterminada viene configurada para el dispositivo “/dev/dsp” y creo que este dispositivo ya no se usa o el nombre tal ves esta obsoleto.

XVidCap es un excelente programa para grabar screencast ya que es uno de los pocos programas de screencast que ocupan pocos recursos en Linux. También se recomienda mucho el programa Kazam para grabar el escritorio en Linux, ya que ocupa pocos recursos. Pero no se si funciona en OpenSuse 11.3 (La distro de Linux que tengo instalada), por  lo menos en los repositorios oficiales de OpenSuse no esta. Creo que esta solo para las distros de Ubuntu.

Tengo la solución al problema de sonido de XVidCap y es solamente, que este programa apunta a un dispositivo que ya no se usa, creo. Y tiene que apuntar al dispositivo “/dev/audio” así me funciona a mi.

Para solucionar el problema con el sonido de XVidCap, escribir en un terminal (consola o pront)–>

writkas@linux-h4cu:~> xvidcap --audio_in /dev/audio

Si el sonido se escucha entrecortado es por que el programa te esta pidiendo mas recursos de los que tiene tu PC (pero este programa si pide menos recuros que RecordMyDesktop y parecidos, pero puedes bajar la taza de frames por segundo para que ocupe menos recursos de tu pc.

Bajar la cantidad de frames por segundo (fps) de XVidCap

writkas@linux-h4cu:~> xvidcap --audio_in /dev/audio --fps 8

8 Fotogramas es lo mínimo que acepta XVidCap.

Información útil sobre XVidCap.

writkas@linux-h4cu:~> xvidcap --codec-help
xvidcap, ver 1.1.7, (c) rasca, berlin 1997,98,99, khb (c) 2003-07
Codecs disponibles para captura single-frame: pgm, ppm, png, jpeg, mpeg1
Codecs disponibles para captura multi-frame: mjpeg, mpeg4, ms_div2, ms_div3, ffv1, flash_video, flash_sv, dv, mpeg2, svq1
Especifique 'auto' para utilizar el codec por defecto del formato de fichero.
writkas@linux-h4cu:~> xvidcap --aucodec-help
xvidcap, ver 1.1.7, (c) rasca, berlin 1997,98,99, khb (c) 2003-07
Codecs de audio disponibles para captura multi-frame: mp2, mp3, vorbis, ac3, pcm16
Especifique 'auto' para utilizar el codec de audio por defecto según el formato de fichero.

Configurar XVidCap en Mono o en estéreo. De forma predeterminada el numero de canales de audio en XVidCap es ‘2’ osea es ‘estéreo’ y si queremos podemos dejarlo con un solo canal ‘mono’ ¿como? –>

writkas@linux-h4cu:~> xvidcap --audio_in /dev/audio --fps 8 --audio_channels 1

Un ejemplo para configurar la resolución de XVidCap sería. Se sabe que la resolución HD es de 1280 x 720 , entonces si queremos tener esa resolución para grabar tendremos que dejarlo así, siguiendo con el ejemplo –>

writkas@linux-h4cu:~> xvidcap --audio_in /dev/audio --fps 8 --audio_channels 1 --cap_geometry 1280x720+1+1

Donde dice 1+1 es la posición de donde empieza a grabar, pensando desde el primer pixel de la parte superior izquierda. Tienes que tomar en cuenta la resolución de tu pc, por que si por ejemplo queres grabar un video de 600×600 y tu monitor es de 1000×1000 y empiezas del pixel 500 x 500, daría un error por que tu monitor no alcanza la resolución.

Algunas opciones o argumentos mas importantes de XVidCap

-v

Ejecuta  xvidcap en modo verbose. Esto proporciona más información sobre ajustes de usuario, codecs de entrada y salida, rendimiento, … Mensajes como `”missing XX milli secs ..”‘ durante la captura  significa  que  está perdiendo frames debido a la falta de recursos (frames perdidos). Esto resulta en un video que se reproducirá acelerado. Tenga en cuenta que el modo verbose ralentiza xvidcap y podría ser el causante de perdidas de frames. Pruebe a ejeutarlo sin modo verbose y observe el contador de frames perdidos.

–file nombre/patrón de fichero

El nombre/patrón de fichero a utilizar para guardar los frames capturados. Un patrón de nombre de fichero contiene un formato tipo printf() (ref. man printf) para hacer el nombre de fichero incrementable, e.g. –file out-%02d.xwd. Esto es necesario para capturas single-frame. xvidcap reemplazará la primera cadena del formato printf() con el número del frame capturado. Así pues, en el ejemplo dado, escribirá los ficheros out-00.xwd, out-01.xwd, out-02.xwd, etc. El número de frame desde el que iniciar la capturapuede ser especificado con –start_no, ver arriba.

La captura Multi-frame no necesita un patrón de fichero. Si especifica uno, no obstante como –file mymovie-%d.mpeg, xvidcap reemplazará la  cadena de formato con el número de la sesión grabación actual (siempre empezando a contar desde cero). Esto le habilitará para incrementar/disminuir manualmente ese número, o usar la característica autocontinuar (ref. –continue arriba) creando una serie de ficheros de video.

–codec codec
Invalida  las  preferencias  y la selección automática de codecs y utiliza el codec explicitamente especificado.

–cap_geometry geometría
Especifica la geometría como por ejemplo xterm, i. e. de esta manera:  widthxheight+x-position+y-position Esto invalida la anchura y altura por defecto del marco de captura. Use el botón picker del GUI en vez de esta opción de linea de comandos para ajustar el tamaño del marco de captura a una ventana. Tamaños de  captura  inferiores a 20 x 20 no parecen funcionar bién con la mayoría de codecs de captura multi-frame.

–rescale tamañoEnPorcentaje
Reescala la salida a un porcentaje del original de entrada. Un valor de 25, e. g.  hará que el  tamaño de salida sea un 25 por ciento del área original de entrada.

–quality calidadEnPorcentaje
Especifica un valor entre 0 y 100 para definir la calidad do codificación. El valor por defecto es 75.

–gui yes|no
Inicia xvidcap con o sin GUI de control overriding what’s in the preferences  file.  Ejecutandolo  sin GUI  iniciará  automaticamente  una  sesión  de  captura.  Puede pararse especificando o bien –time o –frames, o pulsando CTRL-C.

–audio yes|no
Habilita  o deshabilita la captura de audio utilizando los parámetros por defecto o aquellos guardados en el fichero de preferencias. Si está soportado, se hbilitará por defecto en las capturas multi-frame.

Por que lo saqué del la documentación del programa ‘man’  de Linux –>

Esta página del manual fué escrita por Karl H. Beckers <karl.h.beckers@gmx.net> para el proyecto xvidcap.  Esta traducción fué hecha por Imanol García Calvo.

Garantizado  el  permiso  de  copia, distribución y/o modificación de este documento bajo Los términos de la licencia de documentación libre, version 1.1 o cualquier versión posterior publicada por la Free Software Foundation; con la imposibilidad  de variar secciones y/o añadir textos en la portada o contraportada.

También si el problema persiste, hay algunos usuarios que buscaron información. Podré sus comentarios acá para complementar la información dada.

Comentarios del usuario Boioto :

gtk-recordMyDesktop (graba video + audio) y gnome-sound-recorder (graba audio) pueden grabar tanto el sonido del sistema como el del micrófono. Para elegir de donde se quiere grabar el audio hay que ejecutar (ALT+F2) gnome-volume-control, pinchar en Hardware, luego en Perfil y ahí elegir la opción correspondiente, según se quiera grabar ..:

+ el sonido del sistema:

  • a) Analog Stereo Output
  • b) Digital Stereo Duplex (IEC958)

+ el sonido del micrófono:

  • a) Analog Stereo Duplex
  • b) Digital Stereo (IEC958) Output + Analog Stereo Input

En gnome-volume-control, a veces puede ser necesario elegir “Apagado”, cerrarlo, abrirlo de nuevo, elegir la opción deseada y cerrarlo de nuevo.

Algunas de las demás opciones pueden funcionar a veces, pero pueden hacerlo a veces para grabar audio del sistema pero otras veces del micrófono. Y otras opciones pueden grabar sonido pero pueden no permitir escuchar lo grabado. Por tanto, es mejor no usar dichas opciones.

Sigue ->

Acabo de probar lo que pones writkas de, desde un terminal ejecutar:
xvidcap –audio_in /dev/audio

Pero no ha funcionado. Eso consigue lo mismo abrir el programa de forma normal (p.e. con Alt+F2, xvidcap y Enter), clic derecho sobre el nombre del fichero (por defecto test-0000.mpeg), clic en Preferencias, luego en Multi-Frame y en “Dispositivo de Entrada” cambiar /dev/dsp por /dev/audio . Creo que esta solución “manual” ya la había probado, como siempre sin éxito.

Ahora he probado lo dicho por ti, combinándolo con poner Analog Stereo Output en el Perfil del Hardware de gnome-volume-control (lo de mi anterior comentario), siguiendo sin grabar sonido. También he probado a grabar sonido del micrófono, también sin éxito (ponga Analog Stereo Output o Analog Stereo Duplex).

¡¡Lo he solucionado, por fin, con lo que dice http://ubuntu-cosillas.blogspot.com/2010/11/xvidcap-grabaciones-de-escritorio-una.html !!:

1. Se desinstala xvidcap en Synaptic
2. Se instala xvidcap con http://sourceforge.net/projects/xvidcap/files/xvidcap/1.1.7/xvidcap_1.1.7jaunty_i386.deb/download
3. Se bloquea la versión instalada en Synaptic
4. Se instala pavucontrol en Synaptic (Ubuntu 10.04; en Linux Mint 10 ya está)
5. Se abre el programa con padsp xvidcap
6. Se pone a grabar
7. Se abre pavucontrol, se va a la pestaña de Grabación y ahí se pone Monitor of Audio interno Analog Stereo

¡Listo!

Para grabar con sonido, siempre hay que arrancar el programa con padsp xvidcap (p.e. desde ALT+F2). Para que siempre sea así desde el menú se ejecuta alacarte (p.e. con ALT+F2), se va a Sonido y vídeo, luego a XVidCap Screen Capture, Propiedades y donde dice Comando se pone padsp xvidcap.

Lo dicho sirve para grabar el sonido del sistema, es decir, el que sale por los altavoces, que puede ser de una canción o película de nuestro disco duro o pendrive reproducida por Totem, de un vídeo musical en Flash de un sitio web reproducido por Firefox, etc.

Sin embargo, a veces puede ser necesario grabar el sonido del micrófono, p.e. si queremos hacer un videotutorial para explicar cómo funciona un programa. En este caso, ponemos a grabar xvidcap, abrimos el Control de Volumen de PulseAudio y, en la pestaña Grabación ponemos Audio interno Analog Stereo (sin Monitor of por delante).

Si sólo se quiere grabar sonido (sin vídeo) podemos usar gnome-sound-recorder (se ejecuta pulsando ALT+F2, poniendo gnome-sound-recorder y pulsando Enter). Seguramente la primera vez estará configurado para grabar desde el micrófono. Para grabar el sonido del sistema ejecutamos (con ALT+F2) gnome-volume-control, vamos a la pestaña Hardware y en Perfil ponemos Analog Stereo Output (también se puede hacer ejecutando pavucontrol y yendo a la pestaña Configuración).

Pero al terminar debemos volver a poner el Perfil del Hardware de gnome-volume-control (o de Configuración de pavucontrol) en Analog Stereo Duplex para que podamos seguir eligiendo desde dónde queremos grabar el sonido con xvidcap.

Nota: a veces, para cambiar de Analog Stereo Duplex a Analog Stereo Output hace falta cambiar primero a Apagado, cerrar, volver a abrir y luego cambiar finalmente a Analog Stereo Output. Ídem para el cambio al revés. Si no se hace a veces el ordenador parece que “no se entera” de que hemos hecho el cambio.

Comentarios de Paraguas Azul:

Otra opción, para no tener que andar cambiando entre Analog Stereo Duplex y Analog Stereo Output ni limitar el origen del sonido para xvidcap, es dejar siempre Analog Stereo Duplex y usar también pavucontrol cuando queremos cambiar el origen del sonido para gnome-sound-recorder. Igual que en el caso de padsp xvidcap, para cambiar desde dónde queremos grabar el sonido, ponemos gnome-sound-recorder a grabar, abrimos pavucontrol y en la pestaña de Grabación ponemos la opción deseada. En este caso no hace falta usar padsp (xvidcap lo necesita porque está pensado para OSS. padsp lo que hace es conectar OSS con PulseAudio, como se lee en http://linux.die.net/man/1/padsp).

He encontrado una solución para Ubuntu de 64 bits en http://angel-de-vicente.blogspot.com/2011/03/screencasts-with-xvidcap-in-ubuntu-1004.html . No la he probado pues mi Ubuntu es de 32 bits. Pero la dejo aquí por si vale para alguien:

Para instalarlo en mi sistema x86_64 basta con usar la opción –force-architecture en el comando dpkg -i.

usuario@equipo:~/Desktop$ sudo dpkg –force-architecture -i xvidcap_1.1.7jaunty_i386.deb

Pero al tratar de ejecutarlo veo que faltan algunas bibliotecas i386. Para instalarlas fácilmente uso el script getlibs.

usuario@equipo:~/Desktop$ padsp xvidcap
xvidcap: error while loading shared libraries: libtheora.so.0: cannot open shared object file: No such file or directory

usuario@equipo:~/Desktop$ getlibs /usr/bin/xvidcap

Hay información sobre getlibs en http://ubuntuforums.org/showthread.php?t=474790

Comentarios de Mejorandus que trata el problema de “El botón en XVidCap “Reproducir” no funciona” :

Os comento que, al menos en Ubuntu 10.04, hay un problemilla:

Cuando terminamos de grabar un vídeo, xvidcap ofrece reproducirlo inmediatamente. Pero si se pulsa en el botón “Reproducir” no pasa nada: no se reproduce el vídeo.

Esto sucede al menos en Ubuntu 10.04 porque por defecto no trae instalado mplayer, el programa que xvidcap usa de serie para reproducir los vídeos al pulsar en el botón indicado.

Hay 2 fáciles soluciones:

  1. Instalar mplayer desde Synaptic.
  2. Ir a Preferencias (pinchando con el botón derecho del ratón sobre el nombre del fichero, por ejemplo test-0000.mpeg, y luego pinchando sobre Preferencias), luego a la pestaña Comandos, y luego, bajo “Comandos de Captura Multi-Frame”, en “Comando de Reproducción” cambiamos mplayer por totem y pinchamos sobre Aceptar. Después volvemos a pinchar con el botón derecho del ratón sobre el nombre del fichero y pinchamos sobre “Guardar Preferencias”.