最初にcheese
を起動すると、Webカメラがオンになります。次に、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など)が何であれ、結果は常に同じです。最初のプログラムがすでに出力を取得している場合、2番目のプログラムはWebカメラを使用できなくなります。
しかし、私はそれが video4linuxの状態 :
一般に、V4L2デバイスは複数回開くことができます。これがドライバーによってサポートされている場合、ユーザーはたとえば「パネル」アプリケーションを起動して明るさや音量などのコントロールを変更し、別のアプリケーションでビデオとオーディオをキャプチャできます。
私のウェブカメラはlspci
で058f:a014 Alcor Micro Corp. Asus Integrated Webcam
として表示されますが、基になるドライバーが何であるかさえわからないため、問題がドライバーに関連しているかどうかを確認できません。どんな入力でも大歓迎です!
これは、Windowsおよびおそらくすべてのオペレーティングシステムで同じです。ウェブカメラは単純な入力デバイスではありません。ウェブカメラからフレームを読み取るには、何らかのプロトコルに従ってコマンドをアクティブに送信する必要があります。これによりステートフルになり、そのため、その状態を管理するアプリケーションはそれに排他的にアクセスできる必要があります。
Windowsでは、splitcamを使用してフィードを複製できます。 Linuxでは、WebcamStudioを使用できます。