V4L2 웹캠을 사용중인 프로세스를 어떻게 알 수 있습니까?


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 컨트롤러의 두 번째 웹 캠입니까?
Dee

카메라 유형, 리눅스 배포판 등을 설명하면 도움이 될 것입니다. 아마도 debianic dmesg | grep -i 'warn|fail|error|usb|video'이 약간의 접착제를 줄 수 있습니다.
Dee

lsusbUSB 비디오 모듈을 사용하는 한 BisonCam 입니다. 젠투를 사용하고 있습니다. 다음에 오류가 발생하면 더 많은 정보를 게시하지만 실제로 캠을 사용하는 프로세스를 찾는 방법에 관심이 있습니다.
Turion

답변:


22

나는 같은 문제를 겪고 있었고 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을 업데이트했습니다 (블로그 작성자가 옮김). 해당 게시물이 도움이되는지 확인할 수 있습니다. 그렇지 않으면, 장치가 비 연속적으로 점유하는 프로세스 일 수 있으므로 퓨저가 점검 할 때 이미 해제 되었습니까? 퓨저를 백그라운드 루프에 넣고 오류를 재현하려고 할 수 있습니까?
Tsan-Kuang Lee

재부팅 후 오류가 사라졌습니다. 오류를 다시 강요하고 싶지 않습니다. 모든 GUI 응용 프로그램이 오디오 및 / 또는 비디오를 한 가지 방법으로 (전화 끊기, 충돌, 검은 색 이미지, 오디오 없음 또는 / dev / video0 차단) 기록하지 못하여 이제 쉘에서 ffmpeg를 사용합니다. 끔찍한 UX이지만 적어도 작동합니다.
panzi

2
오래된 질문이지만 2 시간이 걸렸 sudo fuser /dev/video0으므로 sudo가없는 명령이 결과를 표시하지 않을 경우를 대비하십시오.
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.