Почему две программы не могут получить доступ к моей веб-камере одновременно?

1492
qdii

Я впервые запускаю, cheeseи моя веб-камера включается. Затем я запускаю, vlcчтобы получить выходные данные, /dev/video0но это не с:

[0x7f3ea40012e8] v4l2 demux error: cannot set input 0: Device or resource busy [0x7f3ea40012e8] v4l2 demux error: cannot set input 0: Device or resource busy [0x7f3ea4002168] v4l2 access error: cannot set input 0: Device or resource busy [0x7f3ea4002168] v4l2 access error: cannot set input 0: Device or resource busy [0x7f3eb4000b78] main input error: open of `v4l2:///dev/video0' failed 

Какую бы пару программ видео я не запускал (skype, cheese, vlc и т. Д.), Результат всегда один и тот же: вторая программа больше не может использовать веб-камеру, когда первая уже захватила вывод.

Однако я нахожу это любопытным, поскольку video4linux утверждает :

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

Моя веб-камера видна lspciкак 058f:a014 Alcor Micro Corp. Asus Integrated Webcam, но я даже не знаю, что является основным драйвером, поэтому я не могу проверить, связана ли моя проблема с драйвером или нет. Любой вклад будет более чем приветствоваться!

3

1 ответ на вопрос

4
billc.cn

Это то же самое в Windows и, возможно, во всех операционных системах. Веб-камера - не простое устройство ввода: для считывания кадров с нее нужно активно отправлять команды по какому-либо протоколу. Это делает его состоящим из состояния, и поэтому приложение, управляющее его состоянием, должно иметь эксклюзивный доступ к нему.

На окнах вы можете использовать splitcam для дублирования канала. В Linux вы можете использовать WebcamStudio.

Похожие вопросы