网络摄像头翻转,又称 v4l1compat.so 问题

网络摄像头翻转,又称 v4l1compat.so 问题

自从我安装了 14.04 后,一个老问题又出现了:在 cheese 中我的网络摄像头工作正常,但在 skype 中却颠倒了。之前你可以通过以下方法修复它:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

但据我了解,现在你不能这样做,因为你最终会到达这里:

/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so

结果是:

ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

现在建议使用32位版本

/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so

但 x86_64 只有一个版本,我搜索了整个系统,什么都没有...如何修复?任何帮助非常感谢!

答案1

您必须安装 32 位(i386)版本的 libv4l-0:

sudo apt-get install -y libv4l-0:i386

然后使用以下命令启动 Skype:

LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so

或者修改Exec命令/usr/share/applications/skype.desktop

答案2

我找到了解决这个问题的方法:

LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype

对我的 Ubuntu 14.04 64 位系统来说,这个方法可行。如果你还没有 32 位库,请按以下方法安装:

sudo apt-get install libv4l-dev

我希望这对你也有用。

问候 pecuna

答案3

对解决方案进行一些很好的扩展:

sudo vi /usr/share/applications/skype.desktop

并将上面提到的 add( LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so) 添加到行中

Exec=env  PULSE_LATENCY_MSEC=60 skype %U

所以这条线是

Exec=env LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so PULSE_LATENCY_MSEC=60 skype %U

之后,Dock 中的 Skype 图标也能正常工作。

答案4

垂直翻转相机也遇到同样的问题。

LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so

没有帮助。但在我安装了 Qt V4l2 测试实用程序后(qv4l2),并在“用户控制”选项卡中关闭并重新打开“垂直翻转”选项(默认情况下处于打开状态),然后启动 Skype,摄像头运行正常。因此我使用了命令行控制实用程序v4l2-ctl设置垂直翻转在 Skype 启动之前选择此选项。为 Skype 创建了一个新的启动器脚本:

#!/bin/bash
v4l2-ctl -c vertical_flip=0
v4l2-ctl -c vertical_flip=1
sleep 5
skype %U

并更改了 skype 的桌面启动器以执行此脚本(或者如果您想在会话开始时运行 skype,您可以在设置/会话和启动中为其创建一个条目。PS:不确定为什么需要 5 秒睡眠,但没有它对我来说不起作用:-)。

相关内容