Ubuntu – skypeforlinux recognises external webcam but gives black screen

16.04driversskypewebcam

Situation

Ubuntu 16.04, skypeforlinux 8.53.0.85 and 8.58.0.93 (latest to date from the Skype website)

  • The external webcam works with Cheese
  • The external webcam is recognized by Skype as per screenshot below

    • the vendor and product ID given by lsusb show up in the Skype dialogue window (in hexadecimals)
    • the webcam is on but the screen is not activated: black screen

      enter image description here

Research

This is not on the official list of known issues of Skype for Linux:
https://support.skype.com/en/faq/FA34713/faq-and-known-issues-with-skype

A tack of old posts suggests checking whether the libraries v4l and gstreamer are installed. They are:

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

Directing the launch towards the compatibility or conversion libraries either with

LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l2convert.so /usr/share/skypeforlinux/skypeforlinux

or

LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so /usr/share/skypeforlinux/skypeforlinux

launches Skype but doesn't fix the issue.
Note that /usr/bin/skype is a bash script launching /usr/share/skypeforlinux/skypeforlinux, which I have used above as test.

Question

Any suggestion on how to have Skype actually send signals through the webcam?

Best Answer

I had the same issue and tried a lot of things. I'm using Ubuntu 19.10(eoan), Skype version 8.59.76.73 and libv4l version is 1.16.7-1. My solution to this problem is based on this Ubuntuforums link.

  1. Remove skype completely from your system with

    sudo apt-get purge skype*
    

    or

    snap remove skype
    
  2. Install the libv4l-dev packages

    sudo apt install libv4l-dev
    
  3. Find where the lib4l packages downloaded with the following command,

    find / -iname "*libv4l*" 2>/dev/null
    
  4. Re-install the latest version of skypeforlinux preview version from this Skype repository.

  5. Reboot your system.

  6. With the path for libv4l you found, use the following command to run skypeforlinux

    LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l2convert.so skypeforlinux
    

I hope this helps, I solved my problem with these steps.