4/01/2008

Herramientas para manipular Vídeo II - Software captura

Continuamos con el tema de la captura de vídeo, para esta ocasión veremos un par de aplicaciones, que a mi parecer cumplen con un trabajo aceptable en el tema de adquisición, una tiene entorno gráfico, y la otra sí bien tiene algunos front-ends, es mucho mejor ejecutarla desde la línea de comando, la primera es conocida como xawdecode (lease Xdtv), y la segunda es el popular mencoder.

Xdtv http://xawdecode.sourceforge.net/

Desafortunadamente es un proyecto que en este momento se encuentra abandonado (sep-2007), pero que sin embargo, tiene cierto grado de madurez que nos permite utilizarlo sin ningún incoveniente. Xdtv no se encuentra en ninguno de los repositorios oficiales, pero se puede hallar en un repo frances donde está compilado para utilizar los recursos que nos ofrece el repo livna, por lo tanto debemos tener este último configurado y funcionando:

sudo rpm -hiv http://rpm.livna.org/livna-release-8.rpm
sudo rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY


Luego añadimos el repositorio frances kwizart:

sudo rpm --import http://kwizart.free.fr/fedora/RPM-GPG-KEY-kwizart
sudo rpm -ivh http://kwizart.free.fr/fedora/kwizart-release-8.noarch.rpm


e instalamos el xdtv:

yum --enablerepo=kwizart install xdtv xdtv-OSD-font

La aplicación debe aparecer en el menú Sonido y Vídeo

Un par de observaciones, es mejor modificar la configuración directamente en el archivo de texto que por medio de la interfaz gráfica, por lo menos a mi no me guardan los cambios cuando la reinicio, dicho archivo se encuentra en ~/.xdtv/xdtvrc, y se debe verificar que la entrada de línea esté activada, esta vez para captura.

Mencoder:

Es un programa que acompaña a mplayer, pero cumple funciones de codificación y captura entre otras, se halla en el repo livna (sudo yum install mencoder) en esta oportunidad les dejo un comando para utilizarlo como capturador:

mencoder tv:// -tv driver=v4l:input=2:norm=ntsc:width=640:height=480: \
device=/dev/video0:forceaudio:audiorate=32000 buffersize=64 -ovc lavc \
-lavcopts vcodec=mpeg4:vbitrate=800:keyint=30 -oac mp3lame \
-lameopts br=128:cbr:mode=3 -ffourcc divx -endpos 10 -o `date +%y%m%d_%H%M`-m.avi


En general este comando nos indica que se debe utilizar el soporte de driver v4l (puede ser v4l2, por ejemplo en el caso de usarse saa74xx), la entrada de supervideo (input=2), las otras entradas podrían ser tv input=0, o composite input=1, la normativa es ntsc, podría ser pal o secam, luego la resolución en que queremos guardar nuestro vídeo final(640x480), el dispositivo de hardware a utilizar (/dev/video0), luego la parte relacionada con el formato de vídeo y de audio, esto es todo un maremagnum de posibilidades y tendríamos que escribir un libro para comprenderlo, pero a simple vista se entiende que usamos mpeg4 para el video y mp3 para el audio, un item importante es el vbitrate, a mayor número, mayor tamaño del archivo, y menor posibilidad de perder frames en el proceso de captura, todo esto lo almacenamos en un contenedor avi, cuyo nombre es la fecha de captura.

En este procedimiento con mencoder, no podemos visualizar la imagen que está siendo capturada, por lo tanto, si se necesita saber en que momento detener la captura (Ctrl+c) es necesario tener un dispositivo adicional para ver lo que está ocurriendo, como un televisor, de lo contrario solo se puede saber por el audio que se escucha.

Resumiendo:

mencoder tv:// -tv opciones_acá -ovc lavc -oac mp3lame -lavcopts opciones_acá -lameopts opciones_acá -o archivo_final.avi

Sería bastante recomendable leer el manual de mencoder-mplayer:

man mencoder