सवाल ओपनसीवी 2.4 वीडियो कैप्चर विंडोज पर काम नहीं कर रहा है


मैं निम्नलिखित के साथ स्थापित OpenCV 2.4 में पाइथन बाइंडिंग का उपयोग कर रहा हूं अनुदेश

मेरी समस्या के समान है यह वाला, लेकिन मुझे विंडोज मशीन समाधान की आवश्यकता है।

समस्या: जब मैं उपयोग करने की कोशिश करता हूं

cap = cv2.VideoCapture(0)
print cap.grab()

यह ठीक काम करता है, लेकिन निम्नलिखित कोड

cap = cv2.VideoCapture(filename)
print cap.grab()

हमेशा झूठी वापसी।

फ़ाइल का पथ सही, पूर्ण है और इसमें कोई स्थान नहीं है।

मैंने इसी तरह के परिणामों के साथ विंडोज एक्सपी और विंडोज 7 के साथ दो मशीनों पर कोशिश की। लिनक्स (उबंटू) पर यह मेरे लिए ठीक काम करता है।


44
2017-07-28 07:55


मूल


क्या आप फ़ाइल नाम का मूल्य पोस्ट कर सकते हैं? उपयोग करने का प्रयास करें filename = os.path.join( filename )। यहां अधिक जानकारी: stackoverflow.com/questions/1633643/... - Larry Battle
ये था "C:\\m.avi", लेकिन मैंने अभी कोशिश की "C:\m.avi" तथा "C:/m.avi"। यह अभी भी काम नहीं कर रहा है (बिना और बिना os.path.join)। - Bihaqo
जांचें कि opencv_ffmpeg.dll उसी निर्देशिका में है जो अन्य ओपनसीवी डीएलएस पायथन द्वारा उपयोग किया जाता है। इसके अलावा, एक और एवी फ़ाइल आज़माएं। कभी-कभी ओपनसीवी उन फ़ाइलों को डीकोड नहीं कर सकता जो अन्य प्रोग्राम्स द्वारा सही ढंग से खेले जाते हैं (उदा। विंडोज मीडिया प्लेयर) - Piotr
सी कोशिश करें: \\ m.avi भी। - Abid Rahman K
मुझे अपने कंप्यूटर पर किसी नाम में "opencv" के साथ कोई फ़ाइल नहीं मिली (ओपनसीवी फ़ोल्डर और इसके पाठ्यक्रम की सामग्री को छोड़कर)। तो मैंने बस कॉपी करने की कोशिश की opencv_ffmpeg.dll सेवा मेरे C:\Python27\Lib\site-packages` (like cv2.pyd`) लेकिन यह काम नहीं करता है। - Bihaqo


जवाब:


जोड़ना C:\OpenCV\3rdparty\ffmpeg\ विंडोज पाथ पर्यावरण परिवर्तनीय या प्रतिलिपि के लिए opencv_ffmpeg.dll उस निर्देशिका से C:\Python27\ या एक निर्देशिका में जो पैथ में है। वैकल्पिक रूप से, ओपनसीवी बाइनरी का उपयोग करें http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv

नाम बदलना opencv_ffmpeg.dll फ़ाइल भी आवश्यक हो सकती है।

ओपनसीवी संस्करण X.Y.Z के लिए
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ.dll

64-बिट ओपनसीवी संस्करण X.Y.Z के लिए
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ_64.dll


67
2017-07-28 19:28



धन्यवाद! यह काम करता है, लेकिन केवल अगर आप कॉपी करते हैं सब से फाइलें C:\OpenCV\3rdparty\ffmpeg`, not just opencv_ffmpeg.dll`। - Bihaqo
नीचे सभी उत्तरों देखें। ऐसा लगता है कि किसी को नाम बदलने की जरूरत है opencv_ffmpeg.dll फ़ाइल करने के लिए opencv_ffmpegXYZ.dll ओपनसीवी संस्करण एक्स.वायजेड और के लिए opencv_ffmpegXYZ_64.dll अगर कोई 64 बिट संस्करण का उपयोग करता है। - Eran Marom
ओपनसीवी 2.4.10 के साथ, सी: \ opencv \ स्रोत \ 3rdparty \ ffmpeg को विंडोज पथ में जोड़ना और opencv_ffmpeg.dll और opencv_ffmpeg_64.dll को opencv_ffmpeg2410.dll और opencv_ffmpeg2410_64.dll पर पुनर्निर्मित करना! धन्यवाद :) अब मैं एमजेपीईजी वीडियो फाइलें खोलने में सक्षम हूं - Vincent
धन्यवाद - यह काम करता है! यह निराशाजनक है कि यह "चुपचाप विफल रहता है" उस डीएलएल की प्रतिलिपि बनाये बिना। मैं बदले में एक सूक्ष्म झूठी, एक अच्छा बड़ा अपवाद "त्रुटि, डेंजर विल रॉबिन्सन, लापता डीएल <...>" और फिर मर जाऊंगा। - Danny Staple
मैं दूसरे विकल्प की सिफारिश करता हूं (ओपनसीवी बाइनरी का उपयोग करके lfd.uci.edu/~gohlke/pythonlibs/#opencv)। यह क्लीनर और बहुत सरल है। सहायता के लिए धन्यवाद। - Victor Oliveira Antonino


प्रतिलिपि बनाई जा रही opencv_ffmpeg.dll मेरे लिए पर्याप्त नहीं था - मुझे इसका नाम बदलना पड़ा opencv_ffmpeg246.dll, जब मैंने पायथन 2.7.5 के साथ ओपनसीवी 2.4.6 का उपयोग किया


27
2017-07-16 09:25



इसी तरह, और मैंने मेरा नाम दिया opencv_ffmpeg310.dll - Jonathan
2.4.10 के समान! धन्यवाद - Flayn


मैंने पहली बार प्रतिलिपि बनाने की कोशिश की, फिर विंडोज़ के पथ पर्यावरण को बदल दिया .. जब तक मैंने अपना ओपनसीवी संस्करण 2.4.5 और पायथन 2.7 के लिए नाम को opencv_ffmpeg245.dll में बदल दिया, तब तक यह काम नहीं किया। (नोटिस ** 245.dll ओपनसीवी संस्करण 2.4.5 से है)


8
2018-03-21 13:02





64 बिट संस्करणों के लिए, opencv_ffmpeg_64.dll को opencv_ffmpeg249_64.dll को अपने ओपनसीवी संस्करण में 24 9 बदलें।


7
2018-06-13 18:44





64 बिट पर्यावरण पर ओपनसीवी 3.0.0 के लिए opencv_ffmpeg_64.dll कॉपी करें और इसे opencv_ffmpeg300_64.dll पर पुनर्नामित करें।

जावा के तहत ओपनसीवी के साथ काम करने के लिए यह पथ अपने पाथ पर्यावरण परिवर्तक में भी जोड़ें।


6
2017-10-05 21:34



पेहॉन के लिए भी काम करता है - Gulzar


अद्यतन: यह अभी भी ओपनसीवी 2.4.9 के लिए सच है, सभी फाइलों की प्रतिलिपि बनाएँ, और dll opencv_ffmpeg249.dll का नाम बदलें


5
2018-06-09 12:42



मैं ओपनसीवी 3.0.0-टीपी 2 विंडोज़ के लिए काम नहीं कर सकता, एक बेताब कोडर के लिए कोई संकेत? :) - andli


मुझे अजगर 2.7 और ओपनसीवी 2.4.10 के साथ एक ही समस्या थी। मैंने c: \ Applications \ opencv \ build \ x64 \ vc10 \ bin से python पथ (मेरा सी: \ उपयोगकर्ता \ मोहम्मद \ एनाकोंडा में है) से opencv_ffmpeg2410_64.dll फ़ाइल की प्रतिलिपि बनाई है और इसे हल किया गया था!


4
2018-03-03 04:22





पहले मैं windows8.1 32 बिट और opencv 2.4.10 का उपयोग करता हूं।
मुझे फ़ाइल का उपयोग करने के लिए एक ही समस्या का सामना करना पड़ा test1.wmv जो Logicool C270 द्वारा बनाया गया था।
मैंने दूसरी फाइल का उपयोग करने की कोशिश की test2.mov जो डिजिटल कैमरा (कैनन एसएक्स 160) द्वारा बनाया गया था। तो मैं खेल सकता हूँ test2.mov पथ जोड़ने के लिए C:\opencv\build\x86\vc12\bin
लेकिन मैं नहीं खेल सकता test1.wmv.
तो मैं वीएलसी (टू।) का उपयोग कर test1a.mp4 पर प्रारूप test1.wmv को बदलने का प्रयास करता हूं Video for youtube HD)।
तो मैं खेल सकता हूँ test1a.mp4.
मैंने कोशिश की test1.wmv उबंटू 14.04 एलटीएस पर, तो मैं इसे आसान खेल सकता हूं।
यह windows8.1 और उबंटू 14.04 एलटीएस के बीच डिफ़ॉल्ट ffmpeg बाइनरी पर कुछ अंतर हो सकता है।


3
2017-11-23 10:11





एनाकोंडा पर्यावरण के लिए प्रतिलिपि opencv_ffmpeg249_64.dll सी से: \ Python27 \ अपने ओपनसीवी सही संस्करण के अनुसार अपने संस्करण का नाम बदलें और इसे पिछले करने के लिए C: \ Users \ खालिद \ Anaconda2 \ लाइब्रेरी \ बिन


0
2017-07-08 11:30