En este artículo voy a explicar cómo instalar Guvcview en Slackware 14.1. Guvcview (GTK+ UVC Viewer) es una interfaz GTK simple para capturar y reproducir video desde dispositivos soportados por el driver UVC. El proyecto está basado en la librería luvcview para renderizar video, pero todos los controles se realizan desde una interfaz GTK2. El soporte para audio está basado en la librería portaudio.



Guvcview se encuentra disponible en el repositorio SlackBuilds.org, tanto para Slackware 13.1 como para Slackware 14.1. Tal como expliqué en el artículo ¿Qué hacer después de instalar Slackware 14.1?, instalar software desde SlackBuilds.org es una tarea sencilla.

Primero es necesario instalar los paquetes portaudio y ffmpeg, ya que son dependencias requeridas. En mi caso sólo tuve que instalar portaudio, ya que ffmpeg lo había instalado previamente.

Manos a la obra

Como he mencionado varias veces, me gusta guardar los slackbuilds en un directorio dentro de mi $HOME:

$ cd ~/slackbuilds.org/

Descargar los fuentes junto con los slackbuilds de guvcview y portaudio (también los de ffmpeg si se ha instalado previamente):

$ wget http://downloads.sourceforge.net/project/guvcview/source/guvcview-src-1.7.3.tar.gz
$ wget http://slackbuilds.org/slackbuilds/14.1/multimedia/guvcview.tar.gz
$ wget http://www.portaudio.com/archives/pa_stable_v19_20111121.tgz
$ wget http://slackbuilds.org/slackbuilds/14.1/development/portaudio.tar.gz

NOTA: No utilizar estos comandos, copiar los links actualizados para cada paquete desde SlackBuilds.org.

Instalar portaudio:

tar xvf portaudio.tar.gz 
cp pa_stable_v19_20111121.tgz portaudio
cd portaudio/
sudo ./portaudio.SlackBuild 
cd ..
rm -fr portaudio
sudo mv /tmp/portaudio-V19-x86_64-2_SBo.tgz ./
sudo installpkg portaudio-V19-x86_64-2_SBo.tgz

Instalar guvcview:

tar xvf guvcview.tar.gz 
cp guvcview-src-1.7.3.tar.gz guvcview
cd guvcview/
sudo ./guvcview.SlackBuild
cd ..
rm -fr guvcview
sudo mv /tmp/portaudio-V19-x86_64-2_SBo.tgz ./
sudo installpkg guvcview-1.7.3-x86_64-1_SBo.tgz

Finalmente, ejecutar guvcview:

$ guvcview

Al ejecutar por primera vez... Falla.

¿Cómo diagnosticar y resolver un problema de este tipo? Primero se debe verificar que la cámara funcione, lógicamente.

Tal como se menciona en la página Web de guvcview, esta herramienta soporta dispositivos de video compatibles con el driver Linux UVC. Revisar que el módulo del kernel uvcvideo esté cargado:

$ lsmod | grep video

Debe aparecer listado el módulo "uvcvideo". Por defecto Slackware 14.1 carga el módulo uvcvideo si detecta un dispositivo de video (por ejemplo una webcam) durante la instalación. Si por alguna razón no fuese así, este módulo debe ser cargado ejecutando:

$ sudo modprobe uvcvideo

En mi caso el módulo ya estaba cargado, así que no tuve necesidad de ejecutar modprobe.

Luego revisar el log de mensajes del kernel para determinar si la cámara ha sido detectada:

sudo dmesg | less

Se debe encontrar una sección de mensajes similar a la siguiente (varía dependiendo de cada dispositivo:

[   10.096012] Linux video capture interface: v2.00
[   10.162534] uvcvideo: Found UVC 1.00 device USB2.0 Camera (5986:02d3)
[   10.164769] input: USB2.0 Camera as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.0/input/input11
[   10.165132] usbcore: registered new interface driver uvcvideo
[   10.165324] USB Video Class driver (1.1.1)

En las últimas dos líneas se observa que la webcam ha sido detectada y está utilizando el driver Linux UVC. Lo que se reduce a un simple problema de permisos.

Veamos los grupos a los que pertenece el usuario actual:

$ groups
wheel audio cdrom

Ahora veamos los permisos sobre el dispositivo de video:

$ ll /dev/video0 
crw-rw---- 1 root video 81, 0 Sep 22 08:45 /dev/video0

Sólo tiene permisos de acceso para el grupo "video". Por lo tanto el problema era simplemente que el usuario actual no tenía permisos para acceder al dispositivo.

Para agregar al usuario "emi" al grupo "video" ejecutar:

$ sudo usermod -a -G video emi

Luego es necesario reiniciar la sesión.

Finalmente, guvcview funciona a la perfección:

$ guvcview

Espero que les haya gustado!!!


Tal vez pueda interesarte


Compartí este artículo