Xav*_*uvw 5 webcam skype drivers 16.04
Ubuntu 16.04、skypeforlinux 8.53.0.85 和 8.58.0.93(来自Skype 网站的最新版本)
这不在Skype for Linux的官方已知问题列表中:https : //support.skype.com/en/faq/FA34713/faq-and-known-issues-with-skype
一些旧帖子建议检查库v4l 和 gstreamer 是否已安装。他们是:
ii libv4l-0:amd64 1.10.0-1 amd64 Collection of video4linux support libraries
ii libv4l-dev:amd64 1.10.0-1 amd64 Collection of video4linux support libraries (development files)
ii libv4l2rds0:amd64 1.10.0-1 amd64 Video4Linux Radio Data System (RDS) decoding library
ii libv4lconvert0:amd64 1.10.0-1 amd64 Video4linux frame format conversion library
ii gir1.2-gst-plugins-base-1.0 1.8.3-1ubuntu0.3 amd64 GObject introspection data for the GStreamer Plugins Base library
ii gir1.2-gstreamer-1.0 1.8.3-1~ubuntu0.1 amd64 GObject introspection data for the GStreamer library
ii gnome-video-effects 0.4.1-3ubuntu1 all Collection of GStreamer effects
ii gstreamer1.0-alsa:amd64 1.8.3-1ubuntu0.3 amd64 GStreamer plugin for ALSA
ii gstreamer1.0-clutter-3.0 3.0.18-1 amd64 Clutter PLugin for GStreamer 1.0
ii gstreamer1.0-libav:amd64 1.8.3-1ubuntu0.2 amd64 libav plugin for GStreamer
ii gstreamer1.0-plugins-base:amd64 1.8.3-1ubuntu0.3 amd64 GStreamer plugins from the "base" set
ii gstreamer1.0-plugins-base-apps 1.8.3-1ubuntu0.3 amd64 GStreamer helper programs from the "base" set
ii gstreamer1.0-plugins-good:amd64 1.8.3-1ubuntu0.4 amd64 GStreamer plugins from the "good" set
ii gstreamer1.0-plugins-ugly:amd64 1.8.3-1ubuntu0.1 amd64 GStreamer plugins from the "ugly" set
ii gstreamer1.0-plugins-ugly-amr:amd64 1.8.3-1ubuntu0.1 amd64 GStreamer plugins from the "ugly" set
ii gstreamer1.0-pulseaudio:amd64 1.8.3-1ubuntu0.4 amd64 GStreamer plugin for PulseAudio
ii gstreamer1.0-tools 1.8.3-1~ubuntu0.1 amd64 Tools for use with GStreamer
ii gstreamer1.0-x:amd64 1.8.3-1ubuntu0.3 amd64 GStreamer plugins for X11 and Pango
ii libclutter-gst-3.0-0:amd64 3.0.18-1 amd64 Open GL based interactive canvas library GStreamer elements
ii libgstreamer-plugins-base1.0-0:amd64 1.8.3-1ubuntu0.3 amd64 GStreamer libraries from the "base" set
ii libgstreamer-plugins-good1.0-0:amd64 1.8.3-1ubuntu0.4 amd64 GStreamer development files for libraries from the "good" set
ii libgstreamer1.0-0:amd64 1.8.3-1~ubuntu0.1 amd64 Core GStreamer libraries and elements
ii libreoffice-avmedia-backend-gstreamer 1:5.1.6~rc2-0ubuntu1~xenial10 amd64 GStreamer backend for LibreOffice
ii phonon-backend-gstreamer:amd64 4:4.8.2-0ubuntu2 amd64 Phonon GStreamer 1.0 backend
ii phonon-backend-gstreamer-common:amd64 4:4.8.2-0ubuntu2 amd64 Phonon GStreamer 1.0.x backend icons
ii totem 3.18.1-1ubuntu4 amd64 Simple media player for the GNOME desktop based on GStreamer
Run Code Online (Sandbox Code Playgroud)
将启动定向到兼容性或转换库
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l2convert.so /usr/share/skypeforlinux/skypeforlinux
或者
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so /usr/share/skypeforlinux/skypeforlinux
启动 Skype 但没有解决问题。请注意,这/usr/bin/skype是一个 bash 脚本启动/usr/share/skypeforlinux/skypeforlinux,我在上面用作测试。
关于如何让 Skype 通过网络摄像头实际发送信号的任何建议?
我知道有两种方法可以让您的网络摄像头正常工作skypeforlinux。
预加载 Video For Linux 兼容性库之一。
加利珀金提到了其中之一,v4l2convert.so;如果这不起作用,您可以搜索另一个,v4l1compat.so并将其预加载到启动 Skype 的命令中。例如,如果您在 中找到该库/usr/lib/x86_64-linux-gnu/libv4l/,请关闭 Skype 并尝试使用以下命令重新启动它:
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so skypeforlinux
Run Code Online (Sandbox Code Playgroud)
如果它向您提供有关不兼容 ELF 版本的消息,则您可能正在加载 32 位 Skype 的 64 位库,或者类似的操作:搜索其他版本。
将异国情调的网络摄像头输出转换为可接受的格式。
如果 Skype 检测到您的网络摄像头,但在您打开它时仅显示黑色矩形,则很可能它无法理解网络摄像头的输出。我自己的网络摄像头以 Motion jpeg 格式进行流传输,采用的是我以前从未听说过的像素格式“yuvj422p”。尝试一下是否ffplay可以处理;如果可以的话,ffmpeg也可以,那可能会拯救你。
首先列出可用的输入
$ v4l2-ctl --list-devices
Run Code Online (Sandbox Code Playgroud)
我的输出如下:
BT878 video (Hauppauge (bt878)) (PCI:0000:05:01.0):
/dev/video0
/dev/vbi0
USB Camera (041e:401f) (usb-0000:00:14.0-11.2):
/dev/video1
Run Code Online (Sandbox Code Playgroud)
所以我选择第二个来测试:
$ ffplay -hide_banner -f v4l2 -i /dev/video1
Run Code Online (Sandbox Code Playgroud)
-hide_banner是一个方便的参数,-f v4l2选择解复用器格式,-i /dev/video1我的网络摄像头。
如果ffplay您的网络摄像头处理得很好,您可以通过在视频窗口中键入“q”来停止它,然后继续。安装Video For Linux的环回驱动;您只需执行一次此操作,但您需要 sudo 权限:
$ sudo apt-get update
$ sudo apt-get install v4l2loopback-dkms
Run Code Online (Sandbox Code Playgroud)
这会在您的磁盘上放置略多于 100kB 的额外内容:内核模块v4l2loopback。您必须将其加载到内核中,这是另一个 sudo 活动:
$ sudo modprobe v4l2loopback
Run Code Online (Sandbox Code Playgroud)
之后您可以立即检测到额外的视频输入:
$ v4l2-ctl --list-devices
Run Code Online (Sandbox Code Playgroud)
现在应该显示如下内容:
BT878 video (Hauppauge (bt878)) (PCI:0000:05:01.0):
/dev/video0
/dev/vbi0
USB Camera (041e:401f) (usb-0000:00:14.0-11.2):
/dev/video1
Dummy video device (0x0000) (platform:v4l2loopback-000):
/dev/video2
Run Code Online (Sandbox Code Playgroud)
剩下要做的就是ffmpeg从您的异国网络摄像头获取输入,将其转换为通用格式,例如yuv420p,并通过环回模块将其输出到虚拟视频设备。听起来很复杂,其实无非就是这个命令:输入格式-输入-过滤器-输出格式-输出
$ ffmpeg -hide_banner -f v4l2 -i /dev/video1 -vf format=yuv420p -f v4l2 /dev/video2
Run Code Online (Sandbox Code Playgroud)
您可以再次测试其工作ffplay:
$ ffplay -hide_banner -f v4l2 -i /dev/video2
Run Code Online (Sandbox Code Playgroud)
请注意,我正在从新的视频设备(虚拟设备)获取输入;ffmpegvideo1在读取时将被占用。
我想指出的是,对于我 5 岁的孩子来说,ff-combo 消耗的 CPU 容量还不到 1%。如果一切顺利,ffplay请在视频窗口中输入“q”停止,但继续ffmpeg。
现在转到您的 Skype,然后在音频和视频设置中选择上面命名的环回设备:Dummy video device。如果效果良好,剩下要做的就是微调并清理。如果没有,我和你一样感到抱歉。
ffmpeg准备好后,通过在正在运行的终端中输入内容来关闭q。您可以再尝试一次,并通过向 ffmpeg 添加过滤器来对您的旧网络摄像头进行虚拟更新;这些可以放入其他-vf参数中,或者您可以将它们添加在 , 之前或之后format=yuv420p,并用逗号分隔。我的需要相当大的提升:
-vf format=yuv420p,spp=quality=3:mode=hard:qp=5,unsharp=3:3:0.7:5:5:-0.5,hqdn3d,eq=saturation=1.8:gamma=1.4
Run Code Online (Sandbox Code Playgroud)
但我相信您可以找到自己的 ffmpeg 过滤器以及如何使用它们。ffplay您可以在将它们添加到ffmpeg命令行之前尝试它们
现在,您不想在每次接听或拨打 Skype 电话时阅读此文本并键入其命令。我已将其放入~/.bash_aliases别名下,如下所示videoskype:
alias videoskype="xterm -e /bin/bash -ic 'sudo modprobe v4l2loopback;echo Ready for video call, press q to stop;ffmpeg -hide_banner -f v4l2 -i /dev/video1 -vf format=yuv420p -f v4l2 /dev/video2;sudo modprobe --remove v4l2loopback'&"
Run Code Online (Sandbox Code Playgroud)
从现在开始,videoforskype在交互式 shell(普通终端或类似的启动器bash -ic videoskype)中给出的单个命令将打开一个终端,要求您输入 sudo 密码来加载环回模块,继续ffmpeg运行直到您停止它并卸载环回模块。
请注意,内核模块加载器非常强大:它会尝试优雅地加载已加载的模块。但是,如果您videoskype在另一个终端中运行另一个实例时再次启动,则ffmpeg新终端中的实例将无法从其输入中读取数据并停止,从而导致环回模块被卸载并且第一个模块也ffmpeg停止。
成功!!
我有同样的问题并尝试了很多东西。我使用的是 Ubuntu 19.10(eoan),Skype 版本为 8.59.76.73,libv4l 版本为 1.16.7-1。我对这个问题的解决方案是基于这个 Ubuntuforums 链接。
从您的系统中完全删除 Skype
sudo apt-get purge skype*
Run Code Online (Sandbox Code Playgroud)
或者
snap remove skype
Run Code Online (Sandbox Code Playgroud)安装 libv4l-dev 软件包
sudo apt install libv4l-dev
Run Code Online (Sandbox Code Playgroud)使用以下命令查找 lib4l 软件包的下载位置,
find / -iname "*libv4l*" 2>/dev/null
Run Code Online (Sandbox Code Playgroud)从此Skype 存储库重新安装最新版本的 skypeforlinux 预览版。
重新启动您的系统。
使用找到的 libv4l 路径,使用以下命令运行 skypeforlinux
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l2convert.so skypeforlinux
Run Code Online (Sandbox Code Playgroud)我希望这有帮助,我通过这些步骤解决了我的问题。
| 归档时间: |
|
| 查看次数: |
2454 次 |
| 最近记录: |