К содержимому
  1. Главная
  2. Блог
  3. Как различать несколько USB-камер: решение проблемы одинаковых имён устройств и /dev/video

Как различать несколько USB-камер: решение проблемы одинаковых имён устройств и /dev/video

19 июля 2021 · По материалам Arducam

Несколько модулей камер в Linux и Windows: удобно, но не без проблем

Несколько USB-камер на ПК с Windows или Linux и во встраиваемых системах

Даже если не говорить о пропускной способности, есть много ситуаций, когда к выбранному оборудованию нужно подключить больше 2 модулей камер: самодельный кластер камер, система видеонаблюдения с несколькими камерами на Raspberry Pi, комплект для прямой трансляции с нескольких ракурсов и т. д. Камеры UVC работают без установки драйверов, поэтому их легко встроить во многие проекты и системы машинного зрения.

Но у гибкости есть цена. Когда к одному компьютеру подключено много камер, возникает немало подводных камней — независимо от того, какая ОС стоит на хосте:

  • У каждого модуля камеры своя прошивка, но у всех экземпляров одной модели или партии имя производителя, идентификатор модели и даже серийный номер одинаковы — так их называет производитель камеры.
  • Из-за одинаковых имён устройств крайне трудно понять, какая камера какая, особенно когда подключено несколько модулей.
  • В Ubuntu и других дистрибутивах Linux одна USB-камера отображается как несколько устройств /dev/video, и их порядок меняется при каждом переподключении любой из камер.
  • Когда одна из камер выходит из строя, найти неисправность невозможно.

Нужно решение раз и навсегда.

Linux: несколько USB-камер неизбежно путают записи /dev/video

Как различать несколько USB-камер по серийному номеру

Если в Ubuntu подключить 2 или больше модулей камер UVC и выполнить команду lsusb, вы увидите примерно такой вывод:

Вывод lsusb при нескольких модулях камер в Linux

У всех USB-камер одинаковое имя.

Если проверить их командой ls /dev/video* -lh, окажется, что видеоустройств десятки (каждое устройство /dev/video поддерживает один или несколько видеоформатов):

Несколько устройств /dev/video в Linux

А если посмотреть сведения о производителе, окажется, что MODEL_ID, SERIAL_SHORT и VENDOR_ID у этих видеоустройств тоже совпадают.

Сведения об устройстве /dev/video в Ubuntu
Команда: sudo udevadm info --query=all /dev/video0 | grep 'VENDOR_ID\|MODEL_ID\|SERIAL_SHORT'

Из-за этого разработчикам очень неудобно программно определять и открывать нужную камеру или все камеры сразу.

Windows: одинаковые имена устройств у нескольких веб-камер

Веб-камеры с одинаковыми именами устройств в Windows

В Windows с несколькими USB-камерами тоже есть сложности: имена модулей камер в диспетчере устройств такие же неразличимые, как и в других системах. Приложениям для вызовов API нужно имя устройства, и чтобы различить модули камер, приходится либо вручную переподключать их и смотреть, какая камера отключилась, либо менять их имена в системном реестре. А стоит перенести те же камеры на другой компьютер — проблема одинаковых имён возвращается.

Нужен способ изменить имена устройств модулей камер так, чтобы разработчик легко их различал — сколько бы модулей ни было подключено и на каком бы компьютере он ни работал.

Задача: сделать несколько USB-камер различимыми для разработчиков

Разработчики мучаются с одинаковыми именами нескольких веб-камер

С учётом всего этого нужно решение, которое:

  • упрощает управление несколькими USB-камерами (веб-камерами, бескорпусными платами камер и т. д.) на одном компьютере (Ubuntu, Windows и т. д.) без изменений в системе;
  • даёт пользователю полный контроль над каждой его камерой;
  • помогает разработчикам быстрее создавать проекты с несколькими камерами, не отвлекаясь на проблемы с именами.

К счастью, у Arducam есть такое решение.

Решение: программа, которая навсегда меняет имя устройства и серийный номер USB-камеры

Утилита Arducam для смены имени устройства и серийного номера USB-камеры

Программа Arducam для Windows создана, чтобы решить описанные проблемы, с которыми сталкиваются многие разработчики при подключении нескольких внешних камер к компьютерам с Windows, Linux и macOS.

С её помощью можно в несколько кликов изменить имя устройства и серийный номер модуля камеры UVC. Изменения сохраняются навсегда и действуют во всех операционных системах, пока вы снова не перезапишете их этой программой.

Пошаговая инструкция:

Как изменить серийный номер камеры Arducam UVC

  1. Подключите модуль камеры Arducam UVC к компьютеру.
  2. Скачайте и распакуйте утилиту для смены серийного номера камеры UVC.
  3. Откройте файл .exe.
  4. Нажмите Read — появятся имя устройства (Device Name) и серийный номер (Serial Number) камеры.
  5. Измените серийный номер: введите новый номер. Остальные шаги — в полной инструкции по ссылке выше.

Ещё по теме

Запросить цену

Укажите количество — пришлём коммерческое предложение.