如何修复倒置的笔记本电脑摄像头video

我在华硕N61JQ笔记本电脑上使用Ubuntu 16.04。 当我使用viber或facebook(通过chrome)进行video通话时,我的网络摄像头会输入倒像。 我想知道如何解决它。 因为有两个独立的应用程序(Viber和Chrome),我认为它不是特定于应用程序的。

在互联网上寻找修复时,我发现很多案例都提供了如何解决这个问题的说明。 我跑了

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

它安装了libv4l-0 libv4lconvert0并重新测试但没有修复。

我没有进一步遵循这些解决方案(例如此处 ),因为viber和chrome不是32位应用程序。 我确实用这里提供的方法检查viber是否确实是64位。

如果我要做类似于skype修复的事情,我会包含我希望我应该更改的文件行:

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

 $ 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 

我不知道如何修改这些行以及在哪里找到64位的libv4l包,以便实现一个使viber和chrome正常工作的解决方法。

在我寻求解决潜在问题的过程中,我首先在Unity的“搜索您的计算机”系统设置中查找相机/video设置。 但我一无所获。 我也跑:

 $ ls /dev/video* /dev/video1 

但我不知道该结果是什么。 跑完后也跑了

 sudo lshw -sanitize 

我得到了一个巨大的输出:

 *-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 

我试图从这里找到驱动程序,但一无所获。 例如:

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

没有回报。 我也跑:

 $ 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 

其中(根据互联网)显示了司机的状态。 但不能解释它。

应该有一个驱动程序的文件,我可以修补它,但我怎么找到它?

关于在基于Chrome / Chromium的浏览器中修复倒置/翻转笔记本电脑摄像头video – 几天前我将华硕P52F笔记本电脑更新为Linux Mint 18 XFCE,现在与Ubuntu 16.04.1相当。 我只使用Chrome网络浏览器在环聊和Facebook上面对“倒置”网络摄像头WebRTCvideo。 Firefox运行正常。 Cheese还可以正常显示video。

经过一些谷歌搜索后,我发现了这个错误报告 。 在评论22中,您可以看到2年前有一个用于修复Chrome / Chromium行为的0001-Use-libv4l2-for-Linux-V4L-grabber.patch。 在一年多的时间里,libv4l2被添加到Chromium,但是没有为Linux启用。 您可以在错误报告主题中看到整个讨论。 长话短说,看起来他们现在已经近一年没有积极地解决这个问题了。 但是,有一些丑陋的解决方法……

您可以添加将此扩展程序翻转到Chrome。 它允许您翻转网络摄像头video或网页的任何其他元素。 它只会在本地翻转它,所以你通过Chrome与之交谈的人也需要使用相同的技巧。 它不漂亮,但它的工作……好吧,有点; )毕竟切换到Firefox可能是一个更好,更舒适的解决方案。 干杯!

我继续研究这个,我提出了一个临时解决方案。 这个答案的信息也有帮助。

这里的主要区别是应用程序是64位,所以我无法完全遵循以前的解决方案。 安装libv4l我需要为64位版本的compat文件找到一个合适的路径来设置LD_PRELOAD变量。 环顾四周后,我发现我可以这样做:

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

这和Veazer的回答帮助我通过更改viber.desktop文件来完成解决方法。 重要的是,在进行更改之前进行备份,例如:

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

之后,我们将获得更改viber.desktop文件所需的所有信息。 我们只需要换一行。 以下更改修复了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' 

注意相机反转的整数值2。

我希望同样的方法也可以修复chrome,但我稍后会对它进行处理。 除非有人可以帮我修复网络摄像头驱动程序的潜在问题。

安装包含v4l2-ctl实用程序的v4l-utils软件包:

 sudo apt-get install v4l-utils 

然后编辑.profile:

 nano ~/.profile 

并添加到最后:

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

(双重命令是故意的)

因为,Skype版本8及以上基本上是一个Web应用程序, libv4l库的旧技巧将不再有效。 我已经失去了很多时间才发现它已经不可能了。

因此,由于软件解决方案不存在,我开始使用硬件解决方案。 我买了一台外置网络摄像头 ……它完美无瑕。
此外:我终于意识到华硕K系列笔记本电脑的内置摄像头质量极低。 我的外部太好了。 最后,经过多年,我的来电者可以清楚地看到我,更重要的是:正确:-)

我使用Debian,这是我应用的解决方案并且工作正常:

  1. 确保安装了libv4l-0软件包,(源代码:v4l-utils)
  2. 找到该文件: /usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so
    /usr/lib/x86_64-linux-gnu/libv4l/v4l2convert.so
  3. 打开终端并输入以下内容:

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

它将启动你的Skype,你像往常一样登录,一旦打开,你的摄像头应该被修复。

祝好运!!