मेरे पास वीडियो फ़ाइल है कि मैं एक समय में एक फ्रेम को संसाधित करने की कोशिश कर रहा हूं। मैंने निम्नलिखित प्रकार के कोड के साथ पढ़ने के लिए VideoCapture क्लास का उपयोग करने का प्रयास किया। समस्या यह है कि अगर वीडियो फ़ाइल 25 फ्रेम/सेकंड पर दर्ज की जाती है, तो पढ़ने एक ही गति से होती है। मेरे कंप्यूटर को डीकोड कर सकते हैं जैसे फ्रेम तेजी से कैसे प्राप्त करें?फाइल फ्रेम दर से पाइथन ओपनसीवी के साथ वीडियो फ़ाइलों को कैसे संसाधित करें?
मैं वीडियो स्ट्रीम को संसाधित करने की योजना बना रहा हूं और फिर उसे फ़ाइल में संग्रहीत करने की योजना बना रहा हूं।
import cv2
import sys
import time
cap = cv2.VideoCapture(sys.argv[1])
start = time.time()
counter = 0
while True:
counter += 1;
image = cap.read()[1]
if counter %25 == 0:
print "time", time.time() - start
आउटपुट: यह हर 25 फ्रेम में एक टाइमस्टैम्प प्रिंट करता है। ध्यान दें कि प्रत्येक लाइन => कार्यक्रम प्रक्रियाओं पर प्रति सेकंड लगभग 25 फ्रेम पर टाइमस्टैम्प लगभग 1 सेकंड तक कैसे बदलते हैं। यह वीडियो फ़ाइल के साथ 25 फ्रेम/सेकंड है।
time 1.25219297409
time 2.25236606598
time 3.25211691856
time 4.25237703323
time 5.25236296654
time 6.25234603882
time 7.252161026
time 8.25258207321
time 9.25195503235
time 10.2523479462
शायद वीडियो कैप्चर इस तरह के काम के लिए गलत एपीआई है, लेकिन इसके बजाय इसका क्या उपयोग करना है?
लिनक्स, फेडोरा 20, ओपनसीवी-पायथन 2.4.7 और पायथन 2.7.5 का उपयोग करना।
"समस्या यह है कि अगर वीडियो फ़ाइल 25 फ्रेम/सेकेंड पर दर्ज की जाती है, तो पठन एक ही गति से होता है" - आप इसके बारे में गलत हैं। यह मूल framerate पर विचार नहीं करता है। उपरोक्त आपका कोड पहले से जितना तेज़ हो सके उतना तेज़ पढ़ता है। – berak
"शायद इस तरह के काम के लिए वीडियो कैप्चर गलत एपीआई है" - हाँ, यह शायद सच है। यह छवियों को हासिल करने के लिए सिर्फ एक उपयोगिता है, और नहीं। – berak
@berak पठन गति 30fps वीडियो के लिए 30fps, 15 एफपीएस वीडियो आदि के लिए 15fps लगता है जिसमें बहुत सी CPU निष्क्रिय है। –