Ubuntu 16.04, skypeforlinux 8.53.0.85 и 8.58.0.93 (последняя версия с веб-сайта Skype ])
Внешняя веб-камера распознается Skype, как показано на скриншоте ниже
Этого нет на официальном сайте список известных проблем Skype для 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
Направление запуска в сторону библиотек совместимости или преобразования либо с помощью
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 отправлять сигналы через веб-камеру?
У меня была такая же проблема, и я пробовал много вещей. Я использую Ubuntu 19.10 (eoan), версию Skype 8.59.76.73 и версию libv4l 1.16.7-1. Мое решение этой проблемы основано на этой ссылке Ubuntuforums.
Полностью удалите Skype из вашей системы с помощью
sudo apt-get purge skype*
или
быстро удалить скайп
Установите пакеты libv4l-dev
sudo apt install libv4l-dev
Найдите, куда загружены пакеты lib4l, с помощью следующей команды:
find / -iname "*libv4l*" 2>/dev/null
Переустановите последнюю предварительную версию skypeforlinux из этого репозитория Skype.
Перезагрузите систему.
Используя путь к libv4l, который вы нашли, используйте следующую команду для запуска skypeforlinux
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l2convert.so skypeforlinux
Надеюсь, это поможет, Я решил свою проблему с помощью этих шагов.
Я знаю 2 способа заставить вашу веб-камеру работать на skypeforlinux
.
Предварительно загрузите одну из библиотек совместимости Video For Linux.
galiperkin упомянул один из них, 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
Если он выдает вам сообщения о несовместимой версии ELF, возможно, вы загружаете 64-битные библиотеки для 32-битного Skype или что-то в этом роде: найдите другую версию.
Преобразование экзотического вывода с веб-камеры в общепринятый формат.
Если Skype обнаруживает вашу веб-камеру, но показывает только черный прямоугольник, когда вы открываете ее, скорее всего, он просто не может понять вывод веб-камеры. Моя собственная веб-камера транслирует в движении jpeg в пиксельном формате «yuvj422p», о котором я никогда раньше не слышал. Попробуйте, если ffplay
справится; если это возможно, ffmpeg
тоже может, и это может вас спасти.
Сначала перечислить доступные входы
$ v4l2-ctl --list-devices
Мой вывод гласит:
Видео BT878 (Hauppauge (bt878)) (PCI:0000:05:01.0):
/dev/video0
/dev/vbi0
USB-камера (041e:401f) (usb-0000:00:14.0-11.2):
/dev/видео1
Поэтому я выбираю второй для тестирования:
$ ffplay -hide_banner -f v4l2 -i /dev/video1
-hide_banner
— параметр удобства, -f v4l2
выбирает формат демультиплексора, -i /dev/video1
моя веб-камера.
Если ffplay
хорошо работает с вашей веб-камерой, вы можете остановить ее, набрав 'q' в окне видео, а затем продолжить. Установите петлевой драйвер Video For Linux; вам нужно сделать это только один раз, но вам нужны права sudo:
$ sudo apt-get update
$ sudo apt-get установить v4l2loopback-dkms
Это добавит на ваш диск чуть больше 100 КБ: модуль ядра v4l2loopback
. Вы должны загрузить это в свое ядро, еще одно действие sudo:
$ sudo modprobe v4l2loopback
после чего сразу можно обнаружить лишний видеовход:
$ v4l2-ctl --list-devices
теперь должно отображаться примерно следующее:
Видео BT878 (Hauppauge (bt878)) (PCI:0000:05:01.0):
/dev/video0
/dev/vbi0
USB-камера (041e:401f) (usb-0000:00:14.0-11.2):
/dev/видео1
Фиктивное видеоустройство (0x0000) (платформа: v4l2loopback-000):
/dev/видео2
Все, что осталось сделать, это позволить ffmpeg
принимать входные данные с вашей экзотической веб-камеры, преобразовывать их в общий формат, такой как yuv420p
, и выводить их через модуль обратной связи. на фиктивное видеоустройство. Звучит сложно, но это не более чем эта команда: формат ввода - ввод - фильтр - формат вывода - вывод
$ ffmpeg -hide_banner -f v4l2 -i /dev/video1 -vf format=yuv420p -f v4l2 /dev/video2
Вы можете снова протестировать его работу с ffplay
:
$ ffplay -hide_banner -f v4l2 -i /dev/video2
Обратите внимание, что я беру ввод с нового видеоустройства, манекена; video1 будет занят, пока ffmpeg
читает из него.
Хочу отметить, что ff-combo потребляет менее 1% мощности процессора на моем 5-летнем ребенке. Если все пойдет хорошо, остановите ffplay
, набрав 'q' в его видеоокне, но пусть ffmpeg
продолжится.
Теперь перейдите в свой Skype и в настройках аудио и видео выберите петлевое устройство, названное выше: Фальшивое видеоустройство
. Если это работает хорошо, все, что осталось сделать, это настроить и убрать за собой. Если нет, мне так же жаль, как и вам.
Закройте 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:гамма=1.4
но я уверен, что вы можете найти свои собственные фильтры ffmpeg и узнать, как их использовать. Вы можете попробовать их с помощью ffplay
, прежде чем добавлять их в свою ffmpeg
командную строку
Теперь вы не хотите читать этот текст и вводить его команды каждый раз, когда вы получаете или делаете Звонок по скайпу. Я поместил свой в ~/.bash_aliases
следующим образом, под псевдонимом videoskype
:
alias videoskype="xterm -e /bin/bash -ic 'sudo modprobe v4l2loopback;echo Готов к видеовызову, нажмите q, чтобы остановить;ffmpeg -hide_banner -f v4l2 -i /dev/video1 -vf format=yuv420p -f v4l2 /dev/video2;sudo modprobe --remove v4l2loopback'&"
Отныне одна команда videoforskype
, заданная в интерактивной оболочке (обычный терминал или программа запуска для чего-то вроде bash -ic videoskype
), откроет терминал, который запрашивает ваш пароль sudo для загрузки модуля обратной связи, поддерживает работу ffmpeg
до тех пор, пока вы его не остановите, и выгружает модуль обратной связи.
Обратите внимание, что загрузчик модулей ядра достаточно надежен: он изящно справляется с попытками загрузить уже загруженный модуль. Но если вы снова запустите videoskype
в то время, когда другой экземпляр работает в другом терминале, ffmpeg
в новом не сможет прочитать его вход и остановится, что приведет к выгрузке модуля обратной связи. и первый ffmpeg
также остановится.
Успех!!