3

Сначала я запускаю 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 , но я даже не знаю, что представляет собой основной драйвер, поэтому я не могу проверить, связана ли моя проблема с драйвером или нет. Любой вклад будет более чем приветствоваться!

1 ответ1

4

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .