ฉันจะทราบได้อย่างไรว่ากระบวนการใดกำลังใช้งานเว็บแคม 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

จะเป็นประโยชน์ถ้าคุณอธิบายประเภทกล้องของคุณ, ลินุกซ์ distro ฯลฯ บางที debianic dmesg | grep -i 'warn|fail|error|usb|video'สามารถมอบกาวให้คุณได้
Dee

มันเป็น BisonCam เท่าที่lsusbเกี่ยวข้องโดยใช้โมดูลวิดีโอ usb ฉันกำลังวิ่ง Gentoo ฉันจะโพสต์ข้อมูลเพิ่มเติมเมื่อมีข้อผิดพลาดเกิดขึ้นในครั้งต่อไป แต่จริงๆแล้วฉันสนใจที่จะทราบว่ากระบวนการใดบ้างที่ใช้แคม
Turion

คำตอบ:


22

ผมมีปัญหาเดียวกันและวิธีการแก้ปัญหาที่ http://www.theoutpost.org/8-nslu2/open-devvideo0-device-or-resource-busy/ (แก้ไข: URL ปรับปรุง) ช่วยให้ฉัน

$ 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 แล้ว (ผู้เขียนบล็อกย้ายไป) - บางทีคุณอาจเห็นว่าโพสต์นั้นช่วยคุณได้ มิฉะนั้นอาจเป็นกระบวนการที่ครอบครองอุปกรณ์ไม่ต่อเนื่องดังนั้นเมื่อฟิวเซอร์ตรวจสอบว่ามีการเปิดตัวแล้ว คุณสามารถใส่ fuser ในลูปแบ็คกราวน์แล้วลองสร้างข้อผิดพลาดซ้ำอีกครั้งได้หรือไม่?
Tsan-Kuang Lee

หลังจากรีบูตข้อผิดพลาดก็หายไป ไม่ต้องการบังคับให้เกิดข้อผิดพลาดอีกครั้ง แอพ GUI ทั้งหมดไม่สามารถบันทึกเสียงและ / หรือวิดีโอในวิธีใดวิธีหนึ่ง (แฮงค์ขัดข้องภาพสีดำไม่มีเสียงหรือบล็อก / dev / video0) ดังนั้นตอนนี้ฉันจึงใช้ ffmpeg บนเชลล์ UX ที่น่ากลัว แต่อย่างน้อยก็ใช้งานได้
panzi

2
คำถามเก่า แต่เนื่องจากฉันใช้เวลา 2 ชั่วโมง ... โปรดจำไว้ว่าsudo fuser /dev/video0ในกรณีที่คำสั่งที่ไม่มี sudo ไม่แสดงผลลัพธ์
user3191334

2

ด้วยเหตุผลบางอย่าง / dev / video * จากคำตอบของ Tsan-Kuang ไม่ได้ผลสำหรับฉัน 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.