2012-11-27 17 views
34

मैं .png छवियों की एक श्रृंखला का उपयोग कर एक वीडियो बनाने की कोशिश कर रहा हूं। मैं इस अजगर स्क्रिप्ट नहीं मिली है, लेकिन मैं पूरी तरह से है कि यह कैसे उपयोग करने के बारे में निश्चित नहीं हूँ:पायथन: कई .png छवियों का उपयोग करके एक वीडियो बनाएं

https://sites.google.com/site/timelapsepy/home

मैं भी opencv पर गौर करने की कोशिश की है, लेकिन यह मेरे लिए ठीक से स्थापित करने के लिए प्रतीत नहीं होता। समय-चूक वीडियो बनाने के लिए एक साथ कई छवियों को स्ट्रिंग करने के लिए एक सरल कार्यक्रम पर कोई विचार? यदि संभव हो तो मैं इसके लिए पायथन का उपयोग करना चाहूंगा।

+1

कि timelapsepy के लिए उदाहरण लगते सुंदर सीधा। और यह भी बहुत पाइथन ज्ञान की आवश्यकता नहीं है क्योंकि यह केवल एक कमांडलाइन उपयोगिता सेट है। आप किस भाग पर फंस गए हैं? एक शुद्ध पायथन लिखित समाधान यह और अधिक चुनौतीपूर्ण होगा। ओपनसीवी या पीआईएल आपके लिए उपयोग करना कठिन होगा यदि यह टूल सेट पहले से ही आपको भ्रमित करता है। – jdi

+0

उदाहरण फ़ोल्डर में मेरे पास केवल कुछ छवियां और एक वीडियो शामिल है। मैं पूरी तरह से नहीं देखता कि यह कैसे मदद करता है। =/ – user1620716

+0

यह स्क्रिप्ट टाइम विलंब करने के लिए है। क्या यह आपका लक्ष्य है? यदि आप बस इतना करना चाहते हैं कि पीएनजी छवियों को सीधे एक वीडियो में संयोजित करें, तो आप ट्यूटोरियल से उस 'ffmpeg' दृष्टिकोण का उपयोग कर सकते हैं। – jdi

उत्तर

41

तुम सच में एक पटकथा अजगर समाधान की जरूरत है, तो आप PIL

का उपयोग कर पर गौर कर सकते लेकिन अगर आप आसानी से एक फिल्म के लिए PNG छवियों का एक अनुक्रम परिवर्तित करना चाहते हैं, तो आप बस ffmpeg का उपयोग कर सकते हैं:

ffmpeg -f image2 -r 1/5 -i image%05d.png -vcodec mpeg4 -y movie.mp4 

यह आदेश 5 अंकों के पैडिंग (image00001.png) के साथ छवियों को लेता है और प्रत्येक फ्रेम को 5 सेकंड के लिए रखने की दर पर उन्हें एमपीई 4 क्विकटाइम में संपीड़ित करता है। आप एक अलग एफपीएस करते सकता है अगर आपकी छवियों अधिक से अधिक कर रहे हैं: -r 24 (24 फ्रेम प्रति सेकंड)

+12

इसे पढ़ने के लिए: पायथन 'पीआईएल' lib को 'तकिया' द्वारा प्रतिस्थापित किया गया है और libav/avconv द्वारा ffmpeg। नए समाधान के लिए क्यून चेन का जवाब देखें। – Izzy

+0

क्या होगा यदि मेरे पास समान नामकरण सम्मेलन वाली कई छवियां हैं और एक श्रेणी में नाम से अलग वीडियो बनाना चाहते हैं। उदाहरण के लिए, image0001 - image 0090 मूवी 1, image0230 - image0320 मूवी 2 के रूप में? कोई उपाय? –

+0

@KexinXu - फिर आपको इनपुट से पहले '-start_number ' ध्वज का उपयोग करने की आवश्यकता है, यह बताने के लिए कि कौन सा फ्रेम शुरू होना है, और शायद यह बताएं कि इसे कितना समय बनाना है। – jdi

14
के बजाय

ffmpeg, आप avconv का उपयोग करना चाहें

avconv -f image2 -i figMatplotlib%d.png -r 76 -s 800x600 foo.avi 
+5

क्या आप सुनिश्चित हैं कि ffmpeg को बहिष्कृत किया गया है, तो यहां देखें: http://git.videolan.org/?p=ffmpeg.git;a=log;h=HEAD – Oren

+0

क्या अगर मेरे पास समान नामकरण सम्मेलन वाली कई छवियां हैं और उनमें से अलग-अलग वीडियो को एक श्रेणी में नाम से बनाना चाहते हैं। उदाहरण के लिए, image0001 - image 0090 मूवी 1, image0230 - image0320 मूवी 2 के रूप में? कोई उपाय? –

+3

ffmpeg को बहिष्कृत नहीं किया गया है! कृपया यह उत्तर देखें: http://stackoverflow.com/questions/9477115/what-are-the-differences-and-similarities-between-ffmpeg-libav-and-avconv/9477756#9477756 – user89

संबंधित मुद्दे