2013-11-22 104 views
8

我對Python相對比較陌生(我用了很多MATLAB)。我基本上希望能夠製作和保存動畫。所以我去看看它是如何完成的,發現這個: http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/使用FFmpeg和IPython

我直接複製/粘貼在IPython筆記本中的代碼。

據我所知,ffmpeg必須安裝,我認爲我做了(根據http://www.wikihow.com/Install-FFmpeg-on-Windows)。路徑是C:/ ffmpeg。當我在命令提示符下嘗試ffmpeg -version時,它確實有效。它也適用於WinPython的命令提示符。我不知道它是否有幫助,但Ipython的路徑是: C:\ Users \ Sal \ WinPython-32bit-3.3.2.3 \ python-3.3.2 \ Scripts/

但是,工作。給出的錯誤是: AttributeError:'str'對象沒有'保存'屬性 當然這個錯誤發生在.save命令上。 我甚至試圖添加下面的內容。不做任何額外的事情。 writer ='ffmpeg'

我使用的是Windows 7,WinPython3.3。

非常感謝您

+2

在發生錯誤的地方發佈代碼的相關部分 – SpliFF

+0

您使用的是什麼版本的mpl?動畫作家支持是(相對)新的。 – tacaswell

+0

@ Kreger51你在保存動畫方面取得了成功嗎?我得到同樣的問題!我不知道爲什麼我不能使用anim.save('mymovie.mp4',writer = mywriter)命令生成avi文件,而是我收到一條錯誤消息!謝謝 –

回答

18

我遇到了完全相同的錯誤,因爲我開始使用完全相同的例子開始與動畫工作。首先,

我使用Windows 7,Python的2.7.6,1.3.1 matplotlib

簡短的回答:嘗試通過

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/)一致,它應該是'動畫。 FFMpegWriter()'而不是'animator.FFMpegWriter()' – jorgeh

+0

@Sascha您能否指定哪種方法是正確的?我在一個程序中嘗試了一個短程序(上面兩行)來保存用Python創建的動畫,但是我沒有成功!謝謝 –

+0

@Strömungsmechanik如果你有正確安裝ffmpeg,簡短的回答應該工作。但是,閱讀關於您的動畫問題的其他文章,似乎並沒有討論這裏討論的問題。你有沒有嘗試過上面的教程示例? – Sascha