私は以下を実行しようとしました:
$ 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
は何も返しません。現在どのプロセスが私のウェブカメラを使用しているかを確認する別の適切な方法はありますか?それともまったく別の問題ですか?
私は同じ問題を抱えていました 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
何らかの理由で、Tsan-Kuangの回答の/ dev/video *が機能しませんでした。端末にアクセスする別の方法は次のとおりです:ls /dev/input/by-id/
。例えば:
$ fuser /dev/input/by-id/usb-Microsoft_Microsoft®_LifeCam_HD-5000-event-if00
このコマンドは、デバイスを使用しているすべてのプロセスを返します。
$ 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