Linux настройка веб камеры

Обновлено: 07.07.2024

Установка, настройка и запуск веб-камеры в Linux могут быть достаточно простым процессом или довольно сложной процедурой. Существует несколько шагов, которые необходимо предпринять для упрощения установки, и у каждой веб-камеры и настройки компьютера будут свои особенности и потенциальные проблемы. Проще говоря, есть три основных шага для запуска веб-камеры в Linux. Сначала определите, обнаружена ли веб-камера при подключении, и укажите её точное имя, распознаваемое компьютером. Во-вторых, установите драйверы, необходимые для работы веб-камеры. В-третьих, установите и настройте любое дополнительное программное обеспечение, необходимое или желаемое для работы веб-камеры. Если веб-камера совместима с классом USB-видео (UVC), процесс может быть довольно простым.
Прежде чем пытаться установить веб-камеру в Linux, необходимо убедиться, что предоставлены привилегии root. Чтобы узнать имя подключенной USB-камеры, используйте «lsusb» для просмотра списка всех распознанных USB-устройств. Далее следует часто сложная задача поиска, компиляции и установки драйверов. Драйверы обычно доступны в ядре в виде загружаемого или компилируемого модуля или в виде упакованного двоичного драйвера.


Как только имя модуля будет определено, при запуске команды «lsmod» будут перечислены все загруженные модули. Если Вам повезёт, модуль драйвера будет загружен, но если нет, используйте команду «modprobe» для попытки загрузки модуля вручную. В некоторых случаях ничего из вышеперечисленного не является успешным, и для запуска веб-камеры требуется исправление ядра или перекомпилированное ядро. На веб-сайте производителя камеры может содержаться дополнительная информация и документация для помощи в установке драйвера.

В зависимости от настроек компьютера, камеры и версии программного обеспечения может потребоваться включить узел видеоустройств для доступа к веб-камере в Linux. Используйте скрипт «MAKEDEV», если узел видеоустройства ещё не существует. Выполните поиск устройств либо через файловый менеджер, либо проверьте, что он загружается при загрузке, чтобы убедиться, что оно уже есть или его нужно создать.

Теперь, когда драйвер установлен, а узел видеоустройства установлен, пришло время установить и настроить любое требуемое или желаемое программное обеспечение. Существует ряд программ, облегчающих работу веб-камеры в Linux. Существуют различные программы захвата кадров или захвата изображений, которые можно установить и использовать из командной строки. Могут также использоваться программы с графическим интерфейсом пользователя (GUI), которые обеспечивают дополнительную функциональность, такую ​​как видеоконференция.

Сейчас все ноутбуки поставляются со встроенным средством связи - веб-камерой. Это очень удобно. С помощью web-камеры Linux вы можете общаться с друзьями через интернет, делать фото или даже записывать видео с ноутбука. Но только есть одно но. Не для всех моделей веб-камер есть драйвера в ядре Linux. Веб-камеры подобно сетевым wifi адаптерам еще не полностью поддерживаются этой операционной системой. Но тем не менее многие работают и даже очень хорошо. В этой инструкции мы рассмотрим как выбрать веб-камеру для Linux, а также поговорим о том как с ней работать и настраивать.

Выбор веб-камеры для Linux

Одно дело если ваша веб-камера встроена в ноутбук и вы ничего уже не можете поменять, но другое, если вы покупаете ее сами. В таком случае к выбору web-камеры linux нужно подойти серьезно. Несмотря на то, что сейчас все больше и больше оборудования поддерживается ядром Linux, и достаточно хорошо поддерживаются многие камеры, важно обезопасить себя от проблем.

В Linux, для подключения веб-камер чаще всего используется драйвер v4l, он по умолчанию включен в ядро. Если ваша веб камера linux будет совместима с этим драйвером, скорее всего, с ней проблем не будет. Посмотреть список совместимых устройств можно на сайте Ubuntu. Если кратко, то - вот основные производители:

Конечно, есть и другие производители, и другие драйвера, но с этим драйвером есть большая вероятность того что все будет работать из коробки. v4l использует другие драйвера для работы с оборудованием от различных производителей, но драйвера для всех веб камер, поддерживаемых v4l уже встроены в ядро.

Настройка веб-камеры в Linux

Если веб камера linux совместима с вашей системой, то она автоматически определится и будет работать. Давайте посмотрим определилась ли веб-камера в вашей системе:

Устройство video0 и есть ваша webcam linux, если все в порядке, вы можете с ней работать. Но что же делать если камеры нет? Не все камеры поддерживаются по умолчанию ядром и драйвером v4l. Но для некоторых есть сторонние драйвера, так что еще есть шанс заставить все это работать. Сначала посмотрим что скажет система о состоянии драйверов нашей веб камеры:

В этом примере программа сообщает что нужно использовать драйвер gspca_zc3xx, он готов к использованию и осталось его только загрузить командой:

Теперь еще раз проверьте есть ли устройство видео в каталоге /dev/.

Не во всех дистрибутивы по умолчанию выставляются правильные права на доступ к файлу устройства веб-камеры. Добавим разрешение на чтение и запись для всех пользователей в группе video:

$ sudo chmod g+rw /dev/video0

Настройка веб-камеры linux завершена. Теперь давайте рассмотрим как использовать веб-камеру в Linux.

Работа с веб-камерой в Linux

Кроме стандартного использования web-камеры linux по назначению для видеозвонков в программе Skype, можно делать еще много вещей, например писать видео или делать фотографии. В Linux существует несколько способов записи видео с помощью веб-камеры.

Рассмотрим самые распространенные из них. Во-первых, вы можете транслировать вывод веб камеры сразу на экран компьютера или ноутбука просто выполнив команду:

А с помощью mencoder вы можете сразу писать вывод веб-камеры в avi файл:

Если в вашей системе не установлены эти утилиты, то вы можете использовать даже ffmpeg для записи видео с веб камеры:

Вам необязательно использовать для этой задачи консольные утилиты. Записывать видео с различных устройств позволяет и такая программа, как vlc. Запустите программу из главного меню, откройте меню файл, устройство захвата:


Выберите устройство для записи видеокамера, файл устройства video0:


Дальше нажмите на стрелочку около кнопки Play и выберите Convert (конвертировать) такое решение необходимо для сохранения данных в файл, если сохранять ничего не нужно, можно сразу нажать Play, чтобы проигрывать видео на экране в реальном времени:


Здесь осталось только выбрать файл для сохранения в поле конвертировать в файл:


После того как вы нажмете Старт начнется запись и засветится лампочка на веб-камере:


В набор программ v4l-tools входит утилита streamer, которая позволяет выполнять различные действия веб-камерой в Linux, записывать фото и видео.

Возможно, перед началом работы придется установить сам пакет:

Теперь можно использовать программу. Для записи одного фрейма выполните:

Следующая команда сохранит 10 фреймов:

А такой командой можно записать видео, длительностью 30 секунд и с расширением 352 х 240 пикселей:

Выводы

Вот и все. В этой статье была кратко рассмотрена настройка веб-камеры Linux. Если у вас остались вопросы, пишите комментарии!

Сейчас все ноутбуки поставляются со встроенным средством связи - веб-камерой. Это очень удобно. С помощью 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

crw-rw----+ 1 root video 81, 0 май 31 04:14 video0

Устройство video0 и есть ваша webcam linux, если все в порядке, вы можете с ней работать. Но что же делать если камеры нет? Не все камеры поддерживаются по умолчанию ядром и драйвером v4l. Но для некоторых есть сторонние драйвера, так что еще есть шанс заставить все это работать. Сначала посмотрим что скажет система о состоянии драйверов нашей веб камеры:

В этом примере программа сообщает что нужно использовать драйвер gspca_zc3xx, он готов к использованию и осталось его только загрузить командой:

Теперь еще раз проверьте есть ли устройство видео в каталоге /dev/.

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. Запустите программу из главного меню, откройте меню файл, устройство захвата:

vlc

Выберите устройство для записи видеокамера, файл устройства video0:

vlc1

Дальше нажмите на стрелочку около кнопки Play и выберите Convert (конвертировать) такое решение необходимо для сохранения данных в файл, если сохранять ничего не нужно, можно сразу нажать Play, чтобы проигрывать видео на экране в реальном времени:

vlc2

Здесь осталось только выбрать файл для сохранения в поле конвертировать в файл:

vlc3

После того как вы нажмете Старт начнется запись и засветится лампочка на веб-камере:

vlc4

В набор программ v4l-tools входит утилита streamer, которая позволяет выполнять различные действия веб-камерой в Linux, записывать фото и видео.

Возможно, перед началом работы придется установить сам пакет:

sudo apt-get install v4l-tools

Теперь можно использовать программу. Для записи одного фрейма выполните:

streamer -o foobar.ppm

Следующая команда сохранит 10 фреймов:

streamer -t 10 -r 2 -o foobar00.jpg

А такой командой можно записать видео, длительностью 30 секунд и с расширением 352 х 240 пикселей:

streamer -t 0:30 -s 352x240 -r 24 -o movie.avi -f mjpeg -F stereo

Выводы

Вот и все. В этой статье была кратко рассмотрена настройка веб-камеры Linux. Если у вас остались вопросы, пишите комментарии!




Оцените статью:

(10 оценок, среднее: 4,60 из 5)

Об авторе

16 комментариев

можно более конкретнее по настройке драйвера, например перевернутое изображение камеры вернуть в нормальное состояние.

Купил лет 5 назад в Финляндии камеру Microsoft на упаковке коей был, помимо Окон и значок Пингваина по совместимости и кстати, почти на всех камках он присуствовал.
Завелась из коробки!
А, вот, до этого была Genius, так танцы с бубном и выкрутасы, чтобы завести её.

hwinfo --usb Сорри в кедах нет такой команды, а какая нужна?

Эта нужна, возможно ее нужно установить, в Ubuntu: sudo apt-get install hwinfo

Попросите сотрудников ФСБ больше не следить за вами

Хорошая статья. Спасибо!
Есть проблемка. Не совпадает соотношение сторон. То есть выставляю 1280x720 включаю просмотр с камеры и перед ней кладу квадратик. На экране выглядит как прямоугольник. Не подскажете почему так?

$ sudo apt-get install hwinfo
[sudo] пароль для user:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
E: Не удалось найти пакет hwinfo

Так как же всё таки записывать видео? Лампочка на веб камере не светится, её кожется вообще нет. Камера просто передает изображение на монитор, и всё. Записвыать то - как, как прерывать запись, как сохранять. Ничего не ясно.

$ 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:
как это почнить?

Здраствуйте! Возможно ли увеличить fps web камеры, если в настройках программ(V4L2, guvcview и. т.д. и т.п) доступно только: 320x240 fps5, 160x120 fps10?

$ lsusb
Bus 004 Device 002: ID 1871:0141 Aveo Technology Corp.

$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 Камеры + свичи + кабель + питание.

По популярности видеокамера, сегодня, стоит в одном ряду с микрофоном и наушниками. Она используется в различных направлениях, таких как распознавание объектов, дополненная реальность, видеоконференции и множество других. Но что же скрыто под капотом этих сложнейших программ? Как мы получаем картинку с видеокамеры? Этот цикл статей позволит взглянуть на простоту работы с видеокамерой на низком уровне, обработку полученного изображения.

Для начала, немного информации о работе с устройствами в системе Linux. Устройства в nix системах представляют собой файл. С некоторыми файлами-устройств мы можем работать как с обычными файлами. Например:

эта команда выведет на экран весь диск sda.

Есть устройства с которыми нельзя работать напрямую, к ним относится видеокамера.При попытке это сделать мы получим такую реакцию системы:

*Где /dev/video0 это файл-устройство найшей видеокамеры.

Для работы с ней нам понадобится системная функция ioctl детальнее о ней можно ознакомится [1]. Попробуем это применить. Вот код позволяющий считать информации с устройства (альтернатива команде cat для видеоустройств):

В первых строках кода считываются параметры с которой запущено приложение. Если параметров нету то device_name принимает стандартоне значение "/dev/video0".

В блоке «Open Device» происходит открытие устройства системной функцией open (нужно подключить header fcntl.h). Обязательный параметр O_RDWR отвечает за открытие устройства считывания/записи. Если при подключении возникла ошибка, то функция open вернет -1.

Блок «Read Params From Device» — это сердце нашей маленькой программы. Для его использования надо подключить билиотеку возможно прийдется её установить, у каждого дистрибутива свой пакет под эту библиотеку
Системная функция ioctl имеет три параметра:
file_device — дескриптор нашего устройства
VIDIOC_QUERYCAP — функция ядра, которую применяем для нашего устройства.
device_params — область памяти куда будет сброшен результат функции «VIDIOC_QUERYCAP».

device_params это структура состоящая из таких полей:


если возникла ошибка ioctl вернет -1

Блок «Close Device» закрывает дескриптор устройства.

Посмотрим программу в действии.

устройство не определилось ядром либо не подключено уборщица опять ненужные провода дергала.
Подключаем и заново запуск. Получаем такую информацию:


поле capabilities и device capabilities можно расшифровать благодаря константам из файла videodev2.h:


На этом вводная статья заканчивается. В следующих обзорах будут затронуты, такие темы как memory-mapping, виодеформаты изображения, настройка камеры, вывод изображения в текстуру, работа с несколькими камерами.

Читайте также: