V4L2 Webカメラを使用しているプロセスを確認するにはどうすればよいですか?


14

私は以下を実行しようとしました:

$ vlc -I dummy v4l2:///dev/video0 --video-filter scene --no-audio --scene-path webcam.png --scene-prefix image_prefix --scene-format png vlc://quit --run-time=1                                                     
VLC media player 2.0.7 Twoflower (revision 2.0.6-54-g7dd7e4d)                                                                                                                                                                                                             
[0x1f4a1c8] dummy interface: using the dummy interface module...                                                                                                                                                                                                          
[0x7fc19c001238] v4l2 demux error: VIDIOC_STREAMON failed                                                                                                                                                                                                                 
libv4l2: error setting pixformat: Device or resource busy                                                                                                                                                                                                                 
libv4l2: error setting pixformat: Device or resource busy                                                                                                                                                                                                                 
libv4l2: error setting pixformat: Device or resource busy                                                                                                                                                                                                                 
libv4l2: error setting pixformat: Device or resource busy                                                                                                                                                                                                                 
libv4l2: error setting pixformat: Device or resource busy                                                                                                                                                                                                                 
libv4l2: error setting pixformat: Device or resource busy                                                                                                                                                                                                                 
libv4l2: error setting pixformat: Device or resource busy                                                                                                                                                                                                                 
libv4l2: error setting pixformat: Device or resource busy                                                                                                                                                                                                                 
libv4l2: error setting pixformat: Device or resource busy                                                                                                                                                                                                                 
libv4l2: error setting pixformat: Device or resource busy                                                                                                                                                                                                                 
[0x7fc19c007f18] v4l2 access error: cannot set input 0: Device or resource busy                                                                                                                                                                                           
[0x7fc19c007f18] v4l2 access error: cannot set input 0: Device or resource busy                                                                                                                                                                                           
[0x7fc1a4000b28] main input error: open of `v4l2:///dev/video0' failed                                                                                                                                                                                                    
[0x7fc1a4000b28] main input error: Your input can't be opened                                                                                                                                                                                                             
[0x7fc1a4000b28] main input error: VLC is unable to open the MRL 'v4l2:///dev/video0'. Check the log for details.                                                                                                                                                         
[0x7fc19c007cc8] idummy demux: command `quit'    

だから私は現在私のウェブカメラにアクセスしているプログラムがあると仮定しています、それはそのライトがオフでlsof | grep /dev/video何も返さないので面倒です。現在どのプロセスが私のウェブカメラを使用しているかを確認する別の適切な方法はありますか?それとも全く別の問題ですか?


同じUSBコントローラー上の2番目のWebカメラですか?
ディー

カメラのタイプやLinuxディストリビューションなどを説明すると役立つでしょう。debianic dmesg | grep -i 'warn|fail|error|usb|video'が接着剤になるかもしれません
Dee

これlsusbは、usbビデオモジュールを使用する限り、BisonCam です。Gentooを実行しています。次回エラーが発生したときに詳細情報を掲載しますが、実際には、どのプロセスがカムを使用しているかを調べる方法にのみ興味があります。
Turion 2014

回答:


21

私は同じ問題を抱えていて、http://www.theoutpost.org/8-nslu2/open-devvideo0-device-or-resource-busy/(EDIT:url updated)の解決策 が私を助けてくれました。

$ fuser /dev/video0
/dev/video0: 1871m
$ ps axl | grep 1871
$ kill -9 1871

4
私は何も得ていませんfuser /dev/video0が、まだ得てい/dev/video0: Device or resource busyます。
panzi

私はURLを更新しました(ブログの作成者がURLを移動しました)。おそらく、その投稿が役立つかどうかを確認できます。そうでなければ、それはデバイスを非連続的に占有するプロセスである可能性があるので、フューザーがすでに解放されていることを確認するとき?フューザーをバックグラウンドループに入れて、エラーを再現させてください。
Tsan-Kuang Lee 2015

再起動後、エラーはなくなりました。エラーを再び強制したくない。すべてのGUIアプリがオーディオやビデオを何らかの方法(ハング、クラッシュ、黒い画像、オーディオなし、または/ dev / video0のブロック)で記録できなかったため、シェルでffmpegを使用します。恐ろしいUXですが、少なくともそれは機能します。
panzi

2
古い質問ですが、2時間かかったので... sudo fuser /dev/video0sudoなしのコマンドで結果が表示されない場合に備えて、試してください。
user3191334

2

何らかの理由で、Tsan-Kuangの回答の/ dev / video *が機能しませんでした。端末にアクセスする別の方法を次に示しますls /dev/input/by-id/。例えば:

$ fuser /dev/input/by-id/usb-Microsoft_Microsoft®_LifeCam_HD-5000-event-if00


1

このコマンドは、デバイスを使用しているすべてのプロセスを返します。

$ lsof /dev/video0
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
cheese  31526 kirill  mem    CHR   81,0          18321 /dev/video0
cheese  31526 kirill   23u   CHR   81,0      0t0 18321 /dev/video0

このサンプルでは、​​PIDがあるとプロセスを強制終了できます。

$ kill 31526

lsof / dev / video0が何も出力しない
Max N
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.