2013-11-22 8 views
8

का उपयोग करके मैं पाइथन के लिए अपेक्षाकृत नया हूं (मैंने MATLAB का उपयोग बहुत अधिक किया है)। मैं अनिवार्य रूप से एनिमेशन बनाने और सहेजने में सक्षम होना चाहता हूं। तो मैं गया और जांच की कि यह कैसे किया गया है और यह पाया गया: http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/एफएफएमपीईजी और आईपीथॉन

मैंने सीधे आईपीथन नोटबुक में कोड कॉपी/पेस्ट किया।

मैं समझता हूं कि ffmpeg स्थापित होना चाहिए, जिसे मैंने सोचा था (http://www.wikihow.com/Install-FFmpeg-on-Windows के अनुसार)। पथ सी है:/ffmpeg। जब मैं कमांड प्रॉम्प्ट में ffmpeg -version आज़माता हूं तो यह काम करता है। यह WinPython के कमांड प्रॉम्प्ट में भी काम करता है। मुझे नहीं पता कि यह मदद करता है, लेकिन Ipython के लिए पथ है: सी: \ उपयोगकर्ता \ साल \ WinPython-32bit-3.3.2.3 \ पायथन-3.3.2 \ स्क्रिप्ट/

हालांकि, यह अभी भी ' टी काम नहीं दी गई त्रुटि है: विशेषताएँ त्रुटि: 'str' ऑब्जेक्ट में कोई विशेषता नहीं है 'बचत' यह त्रुटि निश्चित रूप से .save कमांड पर होती है। मैंने नीचे जो भी जोड़ा है उसे जोड़ने का भी प्रयास किया। कुछ भी अतिरिक्त नहीं करता है। लेखक = 'ffmpeg'

मैं विंडोज 7, WinPython3.3 का उपयोग कर रहा हूं।

आपको बहुत बहुत

+2

कोड के प्रासंगिक भाग को पोस्ट करें जहां आपकी त्रुटि होती है – SpliFF

+0

आप किस एमपीएल का उपयोग कर रहे हैं? एनीमेशन लेखक समर्थन (अपेक्षाकृत) नया है। – tacaswell

+0

@ क्रेगेर51 क्या आपने अपनी एनीमेशन को बचाने में सफलता हासिल की? मुझे एक ही समस्या मिलती है !! मुझे नहीं पता कि मैं 'anim.save (' mymovie.mp4 ', writer = mywriter)' आदेश में एक avi फ़ाइल क्यों उत्पन्न नहीं कर सकता हूं और मुझे इसके बजाय एक त्रुटि संदेश मिलता है! धन्यवाद –

उत्तर

18

मैं ठीक उसी त्रुटि के पार आया के रूप में मैं ठीक उसी उदाहरण के साथ शुरू करने के लिए का उपयोग कर एनिमेशन के साथ काम करना शुरू किया धन्यवाद। सबसे पहले,

मैं विंडोज 7, पायथन 2.7.6, matplotlib उपयोग कर रहा हूँ 1.3.1

लघु जवाब:

mywriter = animation.FFMpegWriter() 
anim.save('mymovie.mp4',writer=mywriter) 

लांग जवाब द्वारा FFMpegWriter खुद को तैयार करने के लिए प्रयास करें: मैं कर रहा हूँ काफी यकीन है कि वहाँ matplotblib.animation.save में एक बग है कि वहाँ निम्न पंक्ति

if is_string_like(writer): 

वें पकड़ने के लिए है ई मामला कि उपयोगकर्ता परिभाषित लेखक वास्तव में एक लेखक समारोह नहीं है बल्कि सिर्फ इसका नाम है। यह तो है कि लेखक का एक उदाहरण instanciates अगर यह उपलब्ध है

if writer in writers.avail: 
    writer = writers[writer](fps, codec, bitrate, 
           extra_args=extra_args, 
           metadata=metadata 

हालांकि, और यहाँ बग है, यदि उपयोगकर्ता परिभाषित लेखक नहीं है writers.avail में यह सिर्फ

writer = writers.list()[0] 

जो अपने आप में एक स्ट्रिंग रिटर्न का उपयोग करता है उपयोग किए जाने वाले लेखक के नाम के साथ। हालांकि, यह स्ट्रिंग वास्तव में किसी लेखक ऑब्जेक्ट को कम करने के लिए उपयोग नहीं की जाती है!

+1

आपका संक्षिप्त उत्तर मेरे लिए काम किया। एक मामूली टिप्पणी: [मूल प्रश्न में उद्धृत उदाहरण] के साथ संगत होने के लिए (http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/), यह 'एनीमेशन होना चाहिए। 'Animator.FFMpegWriter()' – jorgeh

+0

@Sascha के बजाय FFMpegWriter() 'क्या आप कृपया निर्दिष्ट कर सकते हैं कि कौन सी विधि सही है? मैंने पाइथन में बनाई गई एनीमेशन को सहेजने के लिए एक प्रोग्राम में एक छोटी सी (ऊपर की दो पंक्तियां) की कोशिश की लेकिन मैं सफल नहीं हुआ!धन्यवाद –

+0

@ Strömungsmechanik यदि आपके पास ffmpeg सही ढंग से स्थापित है, तो संक्षिप्त उत्तर काम करना चाहिए। हालांकि, अपनी एनीमेशन समस्या के बारे में अपनी अन्य पोस्ट पढ़ना, ऐसा प्रतीत नहीं होता कि आपको यहां चर्चा की गई समस्या है। क्या आपने उपरोक्त ट्यूटोरियल उदाहरण की कोशिश की है? – Sascha