Сейчас все ноутбуки поставляются со встроенным средством связи - веб-камерой. Это очень удобно. С помощью web-камеры Linux вы можете общаться с друзьями через интернет, делать фото или даже записывать видео с ноутбука. Но только есть одно но.
Не для всех моделей веб-камер есть драйвера в ядре Linux. Веб-камеры подобно сетевым wifi адаптерам еще не полностью поддерживаются этой операционной системой. Но тем не менее многие работают и даже очень хорошо. В этой инструкции мы рассмотрим как выбрать веб-камеру для Linux, а также поговорим о том как с ней работать и настраивать.
Содержание статьи
Выбор веб-камеры для Linux
Одно дело если ваша веб-камера встроена в ноутбук и вы ничего уже не можете поменять, но другое, если вы покупаете ее сами. В таком случае к выбору web-камеры linux нужно подойти серьезно. Несмотря на то, что сейчас все больше и больше оборудования поддерживается ядром Linux, и достаточно хорошо поддерживаются многие камеры, важно обезопасить себя от проблем.
В Linux, для подключения веб-камер чаще всего используется драйвер v4l, он по умолчанию включен в ядро. Если ваша веб камера linux будет совместима с этим драйвером, скорее всего, с ней проблем не будет. Посмотреть список совместимых устройств можно на сайте Ubuntu. Если кратко, то - вот основные производители:
- A4 Tech
- Creative
- Genius
- Hercules
- Jenoptik
- Logitech
- MediaForte
- Micro Innovations
- Microsoft
- Mustek
- Philips
- Samsung
- Sanyo
- Sony
- Tevion
- Trust
- Typhoon
Конечно, есть и другие производители, и другие драйвера, но с этим драйвером есть большая вероятность того что все будет работать из коробки. v4l использует другие драйвера для работы с оборудованием от различных производителей, но драйвера для всех веб камер, поддерживаемых v4l уже встроены в ядро.
Настройка веб-камеры в Linux
Если веб камера linux совместима с вашей системой, то она автоматически определится и будет работать. Давайте посмотрим определилась ли веб-камера в вашей системе:
sudo ls -l /dev/ | grep video
Устройство video0 и есть ваша webcam linux, если все в порядке, вы можете с ней работать. Но что же делать если камеры нет? Не все камеры поддерживаются по умолчанию ядром и драйвером v4l. Но для некоторых есть сторонние драйвера, так что еще есть шанс заставить все это работать. Сначала посмотрим что скажет система о состоянии драйверов нашей веб камеры:
hwinfo --usb
В этом примере программа сообщает что нужно использовать драйвер gspca_zc3xx, он готов к использованию и осталось его только загрузить командой:
modprobe gspca_zc3xx
Теперь еще раз проверьте есть ли устройство видео в каталоге /dev/.
Обычно система в этом сообщении должна сказать какой драйвер нужен, а уже с помощью интернета вы сможете найти как его установить в своей системе. Если предыдущий драйвер не работает или у вас другая веб-камера можно попробовать также драйвер uvcvideo:
sudo modprobe uvcvideo
Не во всех дистрибутивы по умолчанию выставляются правильные права на доступ к файлу устройства веб-камеры. Добавим разрешение на чтение и запись для всех пользователей в группе video:
sudo chown root:video /dev/video0
$ sudo chmod g+rw /dev/video0
Настройка веб-камеры linux завершена. Теперь давайте рассмотрим как использовать веб-камеру в Linux.
Работа с веб-камерой в Linux
Кроме стандартного использования web-камеры linux по назначению для видеозвонков в программе Skype, можно делать еще много вещей, например писать видео или делать фотографии. В Linux существует несколько способов записи видео с помощью веб-камеры.
Рассмотрим самые распространенные из них. Во-первых, вы можете транслировать вывод веб камеры сразу на экран компьютера или ноутбука просто выполнив команду:
mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -fps 30
А с помощью mencoder вы можете сразу писать вывод веб-камеры в avi файл:
mencoder tv:// -tv driver=v4l2:width=320:height=240:device=/dev/video0 -ovc lavc -o webcam.avi
Если в вашей системе не установлены эти утилиты, то вы можете использовать даже ffmpeg для записи видео с веб камеры:
ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 out.mpg
Вам необязательно использовать для этой задачи консольные утилиты. Записывать видео с различных устройств позволяет и такая программа, как vlc. Запустите программу из главного меню, откройте меню файл, устройство захвата:
Выберите устройство для записи видеокамера, файл устройства video0:
Дальше нажмите на стрелочку около кнопки Play и выберите Convert (конвертировать) такое решение необходимо для сохранения данных в файл, если сохранять ничего не нужно, можно сразу нажать Play, чтобы проигрывать видео на экране в реальном времени:
Здесь осталось только выбрать файл для сохранения в поле конвертировать в файл:
После того как вы нажмете Старт начнется запись и засветится лампочка на веб-камере:
В набор программ v4l-tools входит утилита streamer, которая позволяет выполнять различные действия веб-камерой в Linux, записывать фото и видео.
Возможно, перед началом работы придется установить сам пакет:
sudo apt-get install v4l-tools
Теперь можно использовать программу. Для записи одного фрейма выполните:
streamer -o foobar.ppm
Следующая команда сохранит 10 фреймов:
streamer -t 10 -r 2 -o foobar00.jpeg
А такой командой можно записать видео, длительностью 30 секунд и с расширением 352 х 240 пикселей:
streamer -t 0:30 -s 352x240 -r 24 -o movie.avi -f mjpeg -F stereo
Выводы
Вот и все. В этой статье была кратко рассмотрена настройка веб-камеры Linux. Если у вас остались вопросы, пишите комментарии!
можно более конкретнее по настройке драйвера, например перевернутое изображение камеры вернуть в нормальное состояние.
Купил лет 5 назад в Финляндии камеру Microsoft на упаковке коей был, помимо Окон и значок Пингваина по совместимости и кстати, почти на всех камках он присуствовал.
Завелась из коробки!
А, вот, до этого была Genius, так танцы с бубном и выкрутасы, чтобы завести её...
hwinfo --usb Сорри в кедах нет такой команды, а какая нужна?
Эта нужна, возможно ее нужно установить, в Ubuntu: sudo apt-get install hwinfo
Доброй ночи.
А как исправить ситуацию с постоянно работающей веб камерой, индикатор постоянно горит?
Попросите сотрудников ФСБ больше не следить за вами
Хорошая статья. Спасибо!
Есть проблемка. Не совпадает соотношение сторон. То есть выставляю 1280x720 включаю просмотр с камеры и перед ней кладу квадратик. На экране выглядит как прямоугольник. Не подскажете почему так?
user@user-desktop ~ $ sudo apt-get install hwinfo
[sudo] пароль для user:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
E: Не удалось найти пакет hwinfo
Так как же всё таки записывать видео? Лампочка на веб камере не светится, её кожется вообще нет. Камера просто передает изображение на монитор, и всё. Записвыать то - как, как прерывать запись, как сохранять. Ничего не ясно.
evgen@evgen-System-Product-Name:~$ lsusb
Bus 001 Device 003: ID 0ac8:3610 Z-Star Microelectronics Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
evgen@evgen-System-Product-Name:~$ lsusb
Bus 001 Device 004: ID 0ac8:3610 Z-Star Microelectronics Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
evgen@evgen-System-Product-Name:~$
то при включении - камера определяется - работает.
далее попользовался и она неработает
Bus 001 Device 003 - Bus 001 Device 004:
как это почнить?
Все еще актуален вопрос о перевернутом изображении.
Как исправить в новом Cкайпе? (Linux Mint 18.2 KDE Версия Скайпа 8.11.76.8)
Здраствуйте! Возможно ли увеличить fps web камеры, если в настройках программ(V4L2, guvcview и. т.д. и т.п) доступно только: 320x240 fps5, 160x120 fps10?
Терминал:
user@user:~$ lsusb
Bus 004 Device 002: ID 1871:0141 Aveo Technology Corp.
user@user:~$uvcdynctrl -f
Listing available frame formats for device video0:
Pixel format: YUYV (YUYV 4:2:2; MIME type: video/x-raw-yuv)
Frame size: 320x240
Frame rates: 5
Frame size: 160x120
Frame rates: 10
Система: Xubuntu 18.04
Камера: NEC ic-310
И где потом искать это отснятое видео?
Как использовать вэб камеру в качестве микрофона? Пробовал через arecord, пишется пустой файл.
Не помогло
Камера Sony A7 , вроде не хлам ) есть софт для винды setup.exе конечно же не сработал =))
В общем появляется устройство /dev/video1 но никто не может его открыть.
user@pc1:/media/user/F/Work/$ lsusb
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 002: ID 276d:1160
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 016: ID 1a2c:0e24 China Resource Semico Co., Ltd
Bus 003 Device 003: ID 10c4:8105 Cygnal Integrated Products, Inc.
Bus 003 Device 006: ID 1908:2310 GEMBIRD
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 002: ID 041e:323d Creative Technology, Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
user@pc1:/media/user/F/Work/$
Я уже на экспериментировался от души. Выяснил одну зависимость что 2-3-4 вебки не могут висеть на одном usb контроллере, плохо работают с другими устройствами выжирающими контроллер даже временно (просто укладывают вебку в зелёный экран). То есть нужно докупать PCI USB контроллеры. тогда работает. Но это правило работает если с Linux все нормально.
Иногда Линь вообще ни в какую не желает дружить с вебкой, ругается что кабель ему не тот или неизвестная ошибка и т.п. Заметил эта особенность вылазит если ставить Linux с UNetbootin выбитая дистрибутив из списка. Из образа ISO подготовленного под Windows, таких косяков не было. Даже с вебкой и дровами от iMac 2006 года, всё работало прекрасно.
Еще есть нюансы с прерываниями, пропускной способностью и реальным количеством свободных прерываний, которые я так понимаю играют основную роль при нормальной работе всех USB устройств.
В общем лично мне год назад удалось на Ubuntu сделать домашнюю систему видеонаблюдения из 4-х USB Вебок, всё прекрасно работало, до переустановки системы, потом только слёзы (не только с USB но и с btrfs и жесткими дисками)! Имеет ли значение под какой конкретно системой подготавливается установщик OS флешь накопитель. Доказать связь не так просто, даже при наличии нескольких ПК на переустановки и подготовки флешек уходит слишком много времени и сил!!
А вообще учитывая огромное количество устройств с встроенными вебками, которые можно выковыривать и подпаивать к кабелю USB,проблема довольно актуальная. Поскольку дешевле разобрать парочку ненужных мониторов от ноутбуков или моноблоков, чем покупать IP Камеры + свичи + кабель + питание.
mjpg_streamer
Трансляция видео с web камеры в локальную сеть:
/usr/bin/mjpg_streamer -i "input_uvc.so -yuv" -o "output_http.so -p 8090"
(опция "-yuv" нужна если камера не поддерживает MJPEG)
В браузере клиента открыть адресс: :8090/?action=stream
Пример: http://10.0.0.100:8090/?action=stream