Warum können zwei Programme nicht gleichzeitig auf meine Webcam zugreifen?

1566
qdii

Ich starte zum ersten Mal cheeseund meine Webcam wird eingeschaltet. Ich vlcrenne dann um die Ausgabe von zu packen, /dev/video0aber es schlägt fehl mit:

[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 

Welches Paar von Videoprogrammen ich auch ausführen möchte (Skype, Käse, VLC usw.), das Ergebnis ist immer dasselbe: Das zweite Programm kann die Webcam nicht mehr verwenden, wenn das erste bereits die Ausgabe erfasst hat.

Ich finde es jedoch neugierig, wie Video4linux sagt :

Im Allgemeinen können V4L2-Geräte mehr als einmal geöffnet werden. Wenn dies vom Treiber unterstützt wird, können Benutzer beispielsweise eine "Panel" -Anwendung starten, um Steuerelemente wie Helligkeit oder Lautstärke zu ändern, während eine andere Anwendung Video und Audio erfasst.

Meine Webcam ist in zu sehen, lspciwie 058f:a014 Alcor Micro Corp. Asus Integrated Webcam, aber ich weiß nicht einmal, was die zugrunde liegenden Treiber sind, so kann ich nicht überprüfen, ob mein Problem ist, fahrerbezogene oder nicht. Jede Eingabe wäre mehr als willkommen!

3

1 Antwort auf die Frage

4
billc.cn

Dies ist unter Windows und möglicherweise allen Betriebssystemen gleich. Die Webcam ist kein einfaches Eingabegerät: Um Frames daraus lesen zu können, müssen Sie entsprechend einem Protokoll aktiv Befehle senden. Dies macht es stateful und somit muss die Anwendung, die ihren Status verwaltet, exklusiven Zugriff darauf haben.

Unter Windows können Sie splitcam verwenden, um den Feed zu duplizieren. Unter Linux können Sie WebcamStudio verwenden.