O Skype e a webcam

Se a sua webcam funciona em todos os aplicativos do seu sistema, exceto no Skype, provavelmente este texto é pra você.

Peguei uma webcam da marca Braview (saída do lsusb: 0ac8:305b Z-Star Microelectronics Corp. ZC0305 Webcam) e embora ela estivesse funcionando bem no Cheese e no aMSN, quando tentava usá-la no Skype ela simplesmente não funcionava.

Após ler dezenas de sites, mensagens em fóruns e o que mais o Google me sugerisse parecia que nada fazia o Skype entender que só com ele a câmera não funcionava.

As opções mais comuns que encontrei foram carregar uma biblioteca durante a execução do Skype[1] ou desativar o cairo-dock[2] que parece causar uma incompatibilidade com a Qt4 usada pelo Skype.

Vou me limitar apenas a estas duas referências porque estas foram as primeiras que li e a grande maioria das demais páginas apresentam o mesmo problema e as mesmas soluções, caso você queira ver outras uma procura no Google por skype+webcam+ubuntu deverá saciar o seu desejo).

Ao testar a primeira opção o problema persistia e todas as vezes que tentava testar a camera eu recebia uma enxurrada de mensagens como esta (para vê-las é preciso executar o skype via linha de comandos):

X Error, request 133, minor 18, error code 8 BadMatch (invalid parameter attributes)
X Error, request 133, minor 18, error code 8 BadMatch (invalid parameter attributes)
X Error, request 133, minor 18, error code 8 BadMatch (invalid parameter attributes)
X Error, request 133, minor 18, error code 8 BadMatch (invalid parameter attributes)

A segunda opção que mais encarei como uma simpatia do que efetivamente uma solução técnica na verdade era realmente parte do problema, mas infelizmente ao usá-la não foi possível resolver o problema que continuou impedindo o funcionamento da camera.

Após várias pesquisas a solução que funcionou foi a que encontrei em [3,4 ] onde a primeira solução é aplicada em conjunto com uma gambiarra workaround para resolver o segundo problema.

Solução instantânea

Conforme li naquelas últimas referências então, a solução para o problema era executar o seguinte comando via terminal:

export XLIB_SKIP_ARGB_VISUALS=1 && LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype

Ao executar o skype a partir desta linha de comandos e comprovar que a camera funcionava, bastou modificar o script de inicialização do skype e pronto.

Finalmente Skype+webcam no Ubuntu 10.10

No ubuntu, o Skype é iniciado a partir de um script chamado skype-wrapper. Você pode conferir isto exibindo as propriedades dos atalhos e que chamam este script, ao invés do executável principal.

Este script está localizado em /usr/bin/ e seu conteúdo é exatamente o seguinte:

#!/bin/sh

if [ ! -e ~/.Skype/shared.xml ]; then
 mkdir -p ~/.Skype
 cp /usr/share/skype/shared.xml ~/.Skype/shared.xml
fi

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so  /usr/bin/skype "$@"

Perceba na sua última linha que a tal biblioteca, citada em vários locais, já é carregada por este script padrão do Ubuntu então só precisava adicionar uma linha para que a variável XLIB_SKIP_ARGB_VISUALS fosse inicializada com o valor 1 antes de efetivamente executar o Skype.

O script modificado ficou exatamente assim:

#!/bin/sh

if [ ! -e ~/.Skype/shared.xml ]; then
 mkdir -p ~/.Skype
 cp /usr/share/skype/shared.xml ~/.Skype/shared.xml
fi

export XLIB_SKIP_ARGB_VISUALS=1
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so  /usr/bin/skype "$@"

Obs: Caso você copie e cole o script acima, esteja a tento às aspas (“”) que o WordPress costuma substituir por outras, que embora visualmente similares na verdade são outros caracteres diferentes, e que podem impedir que o script funcione.

Alterando o script

Para alterar o script do seu sistema, tecle [ALT]+[F2], cole o comando abaixo e tecle [ENTER] (informe a sua senha, caso ela seja solicitada).

gksudo gedit /usr/bin/skype-wrapper

Caso o seu sistema não tenha este script, você pode criá-lo com aquele mesmo comando, mas não se esqueça de lhe dar permissões de execução com o comando abaixo e também alterar os seus atalhos para apontar para este novo script ao invés do executável padrão.

gksudo chmod +x /usr/bin/skype-wrapper

Referências

[1] forum Skype community. <http://forum.skype.com/index.php?showtopic=411441>
[2] Ubuntu Wiki. Webcam Skype. <https://wiki.ubuntu.com/SkypeWebCams>
[3] Ubuntu forum.Skype, Logitech webcam and Karmic video problem persists. Nov 2009.  <http://ubuntuforums.org/showpost.php?p=8359353&postcount=12>
[4] Linux Mint Italia. webcam logitech E1000. <http://www.linuxmint-italia.org/index.php?topic=2248.5;wap2>

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.