自从我安装了 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 秒睡眠,但没有它对我来说不起作用:-)。