Вебкамера в Skype

Материал из ALT Linux Wiki
Перейти к: навигация, поиск

Самое главное[править]

Проверьте права на /dev/video* и убедитесь, что у нужных пользователей они есть (например, посредством группы video):

ls -l /dev/video*
id | grep --color video

Чтобы посмотреть, в каких группах состоит конкретный пользователь, существует команда:

groups [username]

Для добавления пользователя в группу video воспользуйтесь следующей командой (команда дается от root):

gpasswd -a [username] video

Прим.: вместо [username] необходимо ввести имя пользователя так, как он назван в вашей системе.

Пример строчки /etc/group для двух пользователей (действует после повторного входа в систему):

video:x:118:vanya,masha

Введение[править]

Обладатели веб-камер с некоторых пор могли заметить, что их устройства перестали работать в некоторых программах, таких как Skype. В категорию неработающих попали те приложения, которые используют интерфейс v4l1, а не v4l2. Эта "поломка" выражается в отображении шума вместо картинки с веб-камеры. Пример такого шума приведен на рисунке:

Skype-settings.png

Описание проблемы[править]

Являясь обладателем веб-камеры (ID 046d:092f Logitech, Inc. QuickCam Express Plus), автор тоже столкнулся с описываемой проблемой. В результате поиска решения выяснилось, что начиная с ядра версии 2.6.27 драйверы веб-камер стали включать в ядро. Включить включили, но не полностью. Та часть драйверов, которая отвечает за преобразование форматов представления изображений с каждой камеры к одному общему формату, была вынесена в отдельную библиотеку libv4l. Таким образом, программы, использующие интерфейс v4l1, перестали работать должным образом.

Решение проблемы[править]

Для решения нашей проблемы нужно выполнить несложные действия. Прежде всего убеждаемся, установлена ли необходимая библиотека. Открываем терминал и вводим команду

$ rpm -qa libv4l

Если библиотека установлена, то получим название установленного пакета (на момент написания данной заметки это libv4l-0.5.6-alt1). Отсутствие какого-либо вывода свидетельствует о необходимости инсталляции библиотеки. Тут же в терминале получаем права суперпользователя (root) набрав команду "su -" (без кавычек) и введя соответствующий пароль. Далее производится установка библиотеки:

$ su -
Password: 
# apt-get install libv4l

Далее выполняем команду:

# echo "export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so">>/etc/bashrc

результатом которой будет добавление в конец файла /etc/bashrc строки export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so, и это будет действовать для всех запускаемых из пользовательской командной оболочки программ. В такой глобальной настройке может не быть смысла; вместо этого можно просто именно таким образом запускать каждую конкретную программу, например (в пользовательской командной оболочке):

$ LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

Заключение[править]

Выполнив эти несложные действия и перезагрузив компьютер, мы получаем нормально работающие с веб-камерой Skype и другие приложения, использующие v4l1. Так же хотелось бы упомянуть программу для изменения качества изображения (цветовой баланс, экспозицию (светлее/темнее), усиление сигнала и др.) "на лету": v4l2ucp. Установить ее можно описанным выше способом (в терминале, получив права суперпользователя):

# apt-get install v4l2ucp

Запускается программа командой

$ v4l2ucp /dev/videoX

, где Х - номер устройства, обычно - 0. Если Вы не планируете использовать более одной веб-камеры, то можно создать символическую ссылку командой (опять же в терминале, получив права суперпользователя)

# ln -s /dev/video0 /dev/video

Теперь программа запускается без параметров:

$ v4l2ucp