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

mah*_*esh 4 webcam skype 17.10

我有一台装有 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
Run Code Online (Sandbox Code Playgroud)

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

Kub*_*r82 7

我遇到了完全相同的问题,我找到了一个很好的解决方法

假设您的网络摄像头在/dev/video0.

请执行以下步骤。

  1. v4l2loopback通过运行安装

    sudo apt-get install v4l2loopback-dkms
    
    Run Code Online (Sandbox Code Playgroud)
  2. v4l2loopback通过运行启用模块

    sudo modprobe v4l2loopback
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    ffmpeg -i /dev/video0 -vcodec rawvideo -pix_fmt yuv420p -vsync 2 -threads 0 -f v4l2 /dev/video1
    
    Run Code Online (Sandbox Code Playgroud)

此命令将真实网络摄像头重定向到 Skype 应识别/dev/video0的虚拟网络摄像头/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
Run Code Online (Sandbox Code Playgroud)

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

alias launch_skype_cam='ffmpeg -i /dev/video0 -vcodec rawvideo -pix_fmt yuv420p -vsync 2 -threads 0 -f v4l2 /dev/video1'   
Run Code Online (Sandbox Code Playgroud)

  • 答案是正确的。我不得不将 -vsync 2 添加到 ffmpeg 命令行。*(这应该是评论,但我的声誉低于50)* (2认同)
  • 这种方法也适用于微软团队 (2认同)

归档时间:

查看次数:

3981 次

最近记录:

4 年,11 月 前