Разрешить нескольким программам доступ к /dev/video0 одновременно?
Я только недавно заметил, что видео с моей веб-камеры не всегда работает в программе, если к ней обращаются другие.
Давайте объясним это на нескольких примерах использования:
Я в фоновом режиме запускаю uTox (клиент мгновенного обмена сообщениями), чтобы я мог получать защищенные сообщения от друзей и клиентов, и вдруг мне звонят по Skype. Skype не может получить доступ к веб-камере, поскольку uTox удерживает устройство.
uTox запущен, и я хочу проверить вывод видео с моей веб-камеры с помощью Cheese. Я получаю сообщение об ошибке:
There was an error playing video from the webcam
и не получить видеовыход.
В обоих этих случаях uTox не запускает подсветку веб-камеры на моем ноутбуке, и он не должен активно использовать веб-камеру (по какой-то причине он просто удерживает устройство). Чтобы обойти это, я хотел бы знать, могу ли я что-нибудь сделать, чтобы позволить нескольким программам получать доступ к камере одновременно (или для тех, кто знаком с клиентом, как убрать блокировку видео из uTox?), как мне вообще нужно, чтобы uTox работал в фоновом режиме. Завершение процесса, чтобы я мог принять звонок через Skype, очень неудобно.
Можно ли как- нибудь разрешить нескольким программам одновременно обращаться к одному видеоустройству?
Ошибка при запуске Cheese:
$ cheese &
...
libv4l2: error setting pixformat: Device or resource busy
libv4l2: error setting pixformat: Device or resource busy
(cheese:8259): cheese-WARNING **: Device '/dev/video0' is busy: gstv4l2object.c(2838): gst_v4l2_object_set_format (): /GstCameraBin:camerabin/GstWrapperCameraBinSrc:camera_source/GstBin:bin18/GstV4l2Src:video_source:
Call to S_FMT failed for YU12 @ 1280x720: Device or resource busy
Системная информация:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.04
Release: 15.04
Codename: vivid
# lshw -short
H/W path Device Class Description
======================================================
system Computer
/0 bus Motherboard
/0/0 memory 7873MiB System memory
/0/1 processor Intel(R) Core(TM) i5-3337U CPU @ 1.80GHz
/0/100 bridge 3rd Gen Core processor DRAM Controller
/0/100/2 display 3rd Gen Core processor Graphics Controller
/0/100/14 bus 7 Series/C210 Series Chipset Family USB xHCI Host Controller
/0/100/14/0 usb2 bus xHCI Host Controller
/0/100/14/1 usb1 bus xHCI Host Controller
/0/100/16 communication 7 Series/C210 Series Chipset Family MEI Controller #1
/0/100/1a bus 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2
/0/100/1a/1 usb3 bus EHCI Host Controller
/0/100/1a/1/1 bus Integrated Rate Matching Hub
/0/100/1a/1/1/1 communication Bluetooth wireless interface
/0/100/1a/1/1/3 multimedia HD WebCam
/0/100/1b multimedia 7 Series/C210 Series Chipset Family High Definition Audio Controller
/0/100/1c bridge 7 Series/C210 Series Chipset Family PCI Express Root Port 1
/0/100/1c/0 eth0 network NetXtreme BCM57786 Gigabit Ethernet PCIe
/0/100/1c/0.1 generic BCM57765/57785 SDXC/MMC Card Reader
/0/100/1c.1 bridge 7 Series/C210 Series Chipset Family PCI Express Root Port 2
/0/100/1c.1/0 wlan0 network QCA9565 / AR9565 Wireless Network Adapter
/0/100/1d bus 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1
/0/100/1d/1 usb4 bus EHCI Host Controller
/0/100/1d/1/1 bus Integrated Rate Matching Hub
/0/100/1f bridge HM77 Express Chipset LPC Controller
/0/100/1f.2 storage 7 Series Chipset Family 6-port SATA Controller [AHCI mode]
/0/100/1f.3 bus 7 Series/C210 Series Chipset Family SMBus Controller
...
Обратите внимание, что рассматриваемое видеоустройство - это "Веб-камера HD", на которую ссылается lshw
расположен в /dev/video0