मुझे कैसे पता चलेगा कि कौन सी प्रक्रिया मेरे 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

सहायक होगा अगर आप अपने कैमरे प्रकार का वर्णन, linux distro आदि नहीं debianic dmesg | grep -i 'warn|fail|error|usb|video'आप कुछ गोंद दे सकते हैं
डी

यह एक BisonCam है जहाँ तक lsusbसंबंध है, USB वीडियो मॉड्यूल का उपयोग करते हुए। मैं जेंटू चला रहा हूं। जब अगली बार त्रुटि होती है, तो मैं अधिक जानकारी पोस्ट करूंगा, लेकिन वास्तव में मैं यह जानने में दिलचस्पी रखता हूं कि कैसे पता लगाया जाए कि कौन सी प्रक्रियाएं कैम का उपयोग कर रही हैं।
तेरह

जवाबों:


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
पणजी

मैंने URL अपडेट किया (ब्लॉग लेखक ने इसे स्थानांतरित किया) - शायद आप देख सकते हैं कि क्या वह पोस्ट आपकी मदद करती है। अन्यथा, क्या यह गैर-निरंतर रूप से डिवाइस पर कब्जा करने की प्रक्रिया हो सकती है जब फ्यूज़र चेक यह पहले से ही जारी है? क्या आप बैकग्राउंड लूप में फ्यूज़र लगा सकते हैं और त्रुटि को फिर से उत्पन्न करने का प्रयास कर सकते हैं?
त्सन-कुआंग ली

रिबूट के बाद त्रुटि हो गई थी। फिर से त्रुटि को मजबूर नहीं करना चाहते। सभी GUI ऐप्स एक या दूसरे तरीके से ऑडियो और / या वीडियो रिकॉर्ड करने में विफल रहे (हैंग, क्रैश, ब्लैक इमेज, नो ऑडियो, या ब्लॉकिंग / देव / वीडियो 0) इसलिए मैं अब शेल पर ffmpeg का उपयोग करता हूं। भयानक UX लेकिन कम से कम यह काम करता है।
19

2
पुराना सवाल है, लेकिन जब से यह मुझे 2h में ले लिया ... ध्यान रखें sudo fuser /dev/video0कि बिना sudo के कमांड के परिणाम के लिए प्रयास करें।
user3191334

2

त्सन-कुआंग के जवाब से किसी कारण / देव / वीडियो के लिए मेरे लिए काम नहीं किया। यहाँ एक और तरीका है जिससे आप अपने डिवाइस तक पहुँच सकते हैं 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

पीआईडी ​​होने से आप इस नमूने में प्रक्रिया को मार सकते हैं:

$ kill 31526

lsof / dev / video0 मुझे कोई आउटपुट नहीं देता
मैक्स एन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.