Como corrigir vídeo da webcam do laptop invertido

4

Estou usando o Ubuntu 16.04 em um laptop ASUS N61JQ. Quando eu uso chamadas de vídeo do viber ou facebook (através do chrome), minha webcam alimenta uma imagem invertida. Eu estou querendo saber como consertar isso. Como dois aplicativos separados (Viber e Chrome) têm isso, estou pensando que não é específico do aplicativo.

Enquanto procurava por uma correção na internet, encontrei muitos casos dando instruções sobre como corrigir isso no skype. Eu corri

sudo apt-add-repository ppa:libv4l/stable
sudo apt-get update
sudo apt-get upgrade

que instalou libv4l-0 libv4lconvert0 e testou novamente, mas não corrigiu.

Eu não segui essas soluções (por exemplo, aqui ) porque o viber e chrome não são aplicativos de 32 bits. Eu verifiquei que o viber é de fato de 64 bits com o método fornecido aqui .

Estou incluindo as linhas dos arquivos que espero que eu mude se eu fizer algo semelhante à correção do Skype:

$ cat /usr/share/applications/viber.desktop | grep Exec
Exec=/opt/viber/Viber

e

$ cat /usr/share/applications/google-chrome.desktop | grep Exec
Exec=/usr/bin/google-chrome-stable %U
Exec=/usr/bin/google-chrome-stable
Exec=/usr/bin/google-chrome-stable --incognito

Não sei como modificar essas linhas e onde encontrar o pacote libv4l para 64 bits, a fim de implementar uma solução alternativa que faça o viber e o chrome funcionarem corretamente.

Na minha tentativa de corrigir o problema subjacente, comecei a procurar configurações de câmera / vídeo nas configurações do sistema "Pesquisar no seu computador" da Unity. Mas eu não encontrei nada. Eu também corro:

$ ls /dev/video*
/dev/video1

mas não sei o que fazer com esse resultado. Também depois de correr

sudo lshw -sanitize

Eu obtenho, em algum lugar, uma grande saída:

*-usb:0
                  description: Video
                  product: USB2.0 UVC 2M WebCam
                  vendor: USB2.0 UVC 2M WebCam
                  physical id: 2
                  bus info: usb@1:1.2
                  version: 2.02
                  serial: [REMOVED]
                  capabilities: usb-2.00
                  configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s

Eu tentei encontrar o driver disso, mas não encontrei nada. Por exemplo:

$ ll /lib/modules/4.4.0-28-generic/kernel/drivers | grep uvcvideo

não retorna nada. Eu também corro:

$ lsmod | grep uvcvideo
uvcvideo               90112  0
videobuf2_vmalloc      16384  1 uvcvideo
videobuf2_v4l2         28672  1 uvcvideo
videobuf2_core         36864  2 uvcvideo,videobuf2_v4l2
videodev              176128  4 uvcvideo,v4l2_common,videobuf2_core,videobuf2_v4l2
media                  24576  2 uvcvideo,videodev

que (de acordo com a internet) mostra o status dos drivers. Não pode interpretar isso.

Deveria haver um arquivo de um driver em algum lugar que eu pudesse consertar para consertá-lo, mas como posso encontrá-lo?

    
por Karsus 07.07.2016 / 19:48

5 respostas

1

Continuei pesquisando sobre isso e encontrei uma solução temporária. As informações da esta resposta também ajudaram.

A principal diferença aqui é que os aplicativos são de 64 bits, portanto não consegui seguir totalmente as soluções anteriores. Depois de instalar libv4l , precisei encontrar um caminho apropriado para um arquivo compat de versão de 64 bits para definir a variável LD_PRELOAD . Depois de olhar em volta, descobri que podia fazer isso com:

 $ dpkg -L libv4l-0 | grep compat
 /usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so

Esta e a resposta de Veazer me ajudaram a completar a solução alterando o arquivo viber.desktop. Importante, antes de fazer alterações, faça um backup, por exemplo:

sudo cp /usr/share/applications/viber.desktop /usr/share/applications/viber.desktop-original

Depois disso, temos todas as informações necessárias para alterar o arquivo viber.desktop. Nós só precisamos mudar uma linha. As seguintes alterações corrigem o problema no viber:

$ cat /usr/share/applications/viber.desktop | grep Exec
Exec=sh -c 'export LIBV4LCONTROL_FLAGS=2 && LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so /opt/viber/Viber'

Anote o valor inteiro 2 para a inversão da câmera.

Espero que a mesma abordagem também corrija o chrome, mas trabalharei mais tarde. A menos que alguém possa me ajudar a corrigir o problema subjacente com os drivers da webcam.

    
por Karsus 08.07.2016 / 13:13
3

Em relação à correção de invertido / invertido vídeo webcam em navegadores baseados em Chrome / Chromium - alguns dias atrás eu atualizei o laptop ASUS P52F para Linux Mint 18 XFCE que está no mesmo nível do Ubuntu 16.04.1 agora. Eu enfrentei o vídeo WebRTC "de cabeça para baixo" na webcam em hangouts e no Facebook usando apenas o navegador da web Chrome. O Firefox funciona bem. Queijo também exibe vídeo corretamente.

Depois de alguns googling, encontrei este relatório de bug . No comentário 22 você pode ver que há 2 anos havia um 0001-Use-libv4l2-para-Linux-V4L-grabber.patch proposto que corrige o comportamento do Chrome / Chromium. Por mais de um ano, libv4l2 é adicionado ao Chromium, mas não está habilitado para o Linux. Você pode ver toda a discussão no encadeamento do relatório de erros. Resumindo, parece que eles não estão trabalhando ativamente para consertar isso há quase um ano. No entanto, há alguma solução feia ...

Você pode adicionar Inverta esta extensão para o Chrome. Ele permite que você gire seu vídeo da webcam ou qualquer outro elemento de uma página da web. Ele vai virar apenas localmente, então as pessoas com quem você fala via Chrome também precisam usar o mesmo truque. Não é bonito, mas está funcionando ... bem, meio que; ) Afinal, mudar para o Firefox talvez seja uma solução melhor e mais confortável. Felicidades!

    
por Dawid M. 20.08.2016 / 12:39
1

Instale o pacote v4l-utils que contém o utilitário v4l2-ctl :

sudo apt-get install v4l-utils

Em seguida, edite seu .profile:

nano ~/.profile

E adicione ao final:

# Flip webcam video
v4l2-ctl -c vertical_flip=0
v4l2-ctl -c vertical_flip=1

(o comando duplo é intencional)

    
por José 14.10.2016 / 03:54
1

Como a versão 8 e acima do Skype é basicamente um aplicativo da Web, o truque antigo com a biblioteca libv4l não funcionará mais. Eu perdi muitas horas para descobrir que não é mais possível.

Então, como a solução de software não existe, fui em direção a uma de hardware. Eu comprei uma câmera web externa ... e ela funciona perfeitamente.
Além disso: finalmente percebi que a câmera embutida nos laptops da série Asus K era de qualidade excepcionalmente baixa. Meu externo é muuuito melhor. Finalmente, depois de muitos anos, meus chamadores podem me ver claramente, e mais importante: corretamente: -)

    
por G. Demecki 16.06.2018 / 19:11
1

Eu uso o Debian, e esta é a solução que apliquei e trabalhei bem:

  1. Certifique-se de ter o pacote libv4l-0 instalado, (fonte: v4l-utils)
  2. Localize o arquivo: /usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so
    ou /usr/lib/x86_64-linux-gnu/libv4l/v4l2convert.so
  3. Abra o seu terminal e digite o seguinte:

    LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so  /usr/bin/skypeforlinux
    

Ele iniciará seu Skype, você fará login como de costume e, depois de abrir, sua câmera deverá ser corrigida.

Boa sorte !!

    
por viktorkh 24.09.2018 / 01:40