Skypeforlinux 无法与外部 USB 摄像头配合使用

Skypeforlinux 无法与外部 USB 摄像头配合使用

我有一台装有 Ubuntu 17.10 和 skypeforlinux 8.16.76 的笔记本电脑。这台笔记本电脑有一个内置网络摄像头,我已将 Logitech QuickCam IM 连接到 USB 端口(出于灵活性原因,我需要使用外部摄像头)。

使用旧版 skype 4.3 时,外部网络摄像头工作得很好。现在,使用 skypeforlinux 5.4 及更高版本时,外部网络摄像头显示黑框。需要说明的是,“音频和视频设置”显示两个摄像头,但当我选择外部网络摄像头时,它显示黑框。内部网络摄像头工作得很好。在 Windows 上,两个摄像头都工作正常。此外,在 Cheese 中,两个摄像头都工作正常。

libv4l详细信息:

mahesh@mahesh-Dell:~$ dpkg --list | grep libv4l
ii  libv4l-0:amd64                                                   1.12.5-1                                     amd64        Collection of video4linux support libraries
ii  libv4l-0:i386                                                    1.12.5-1                                     i386         Collection of video4linux support libraries
ii  libv4l-dev:amd64                                                 1.12.5-1                                     amd64        Collection of video4linux support libraries (development files)
ii  libv4l2rds0:amd64                                                1.12.5-1                                     amd64        Video4Linux Radio Data System (RDS) decoding library
ii  libv4lconvert0:amd64                                             1.12.5-1                                     amd64        Video4linux frame format conversion library
ii  libv4lconvert0:i386                                              1.12.5-1                                     i386         Video4linux frame format conversion library

我需要做什么才能让 skypeforlinux 与外部摄像头一起工作?

答案1

我遇到了同样的问题,我找到了一个很好的解决方法为了它。

假设您的网络摄像头位于/dev/video0

请执行以下步骤。

  1. v4l2loopback通过运行安装

    sudo apt-get install v4l2loopback-dkms
    
  2. v4l2loopback通过运行启用模块

    sudo modprobe v4l2loopback
    

    这将安装虚拟网络摄像头,例如/dev/video1

  3. 最后,当您需要 Skype 上的网络摄像头时,只需运行此命令。

    ffmpeg -i /dev/video0 -vcodec rawvideo -pix_fmt yuv420p -vsync 2 -threads 0 -f v4l2 /dev/video1
    

此命令将真实网络摄像头重定向/dev/video0到 Skype 应该可以识别的虚拟网络摄像头/dev/video1(对我来说很有效)。

如果您不想ffmpeg每次都输入长命令,您可以将其保存到脚本中,launch_skype_cam.sh如下所示。

#!/bin/bash
ffmpeg -i /dev/video0 -vcodec rawvideo -pix_fmt yuv420p -vsync 2 -threads 0 -f v4l2 /dev/video1

或者您可以设置别名,例如在您的.bashrc文件中。

alias launch_skype_cam='ffmpeg -i /dev/video0 -vcodec rawvideo -pix_fmt yuv420p -vsync 2 -threads 0 -f v4l2 /dev/video1'   

相关内容