用python快速保存电影或动画

用python快速保存电影或动画,python,matplotlib,animation,video,save,Python,Matplotlib,Animation,Video,Save,我想创建一个电影或动画使用大量的2D情节。我以两种不同的方式尝试了它,一种是使用matplotlib.animation: [...] for i in xrange(imagdat+start,lendata-imagdat, imagdat): [...] ims.append((plt.pcolormesh(X,Y, forup, vmin=vmin, vmax=vmax, cmap=col),)) plt.axis('off') plt.tight_lay

我想创建一个电影或动画使用大量的2D情节。我以两种不同的方式尝试了它,一种是使用
matplotlib.animation

[...]
for i in xrange(imagdat+start,lendata-imagdat, imagdat):
    [...]
    ims.append((plt.pcolormesh(X,Y, forup, vmin=vmin, vmax=vmax, cmap=col),))
    plt.axis('off')
    plt.tight_layout()
im_ani = animation.ArtistAnimation(fig2, ims)

im_ani.save(fileout+'.mp4', fps=fps)
#plt.show()
plt.close()
使用
mencoder

for i in xrange(imagdat+start,lendata-imagdat, imagdat):
    [...]   
    plt.pcolormesh(X,Y, forup, vmin=vmin, vmax=vmax, cmap=col)
    plt.axis('off')
    fname = '_tmp%03d.png'%i
    savefig(fname, bbox_inches='tight', pad_inches=0)
    files.append(fname)

os.system("mencoder 'mf://_tmp*.png' -mf type=png:fps="+str(fps)+"    -ovc lavc -lavcopts vcodec=wmv2 -oac copy    -o " + fileout + ".mpg")

for fname in files: os.remove(fname)
在第一种情况下,动画的创建速度非常快,保存动画需要很多时间(例如,在一种情况下,我需要4秒来创建动画,我可以看到,但创建和保存动画需要108秒) 第二个代码更慢。这两种情况下的问题是相同的:在将图像合并到电影之前,将图像保存为png文件。这需要很多时间

现在的问题是,如何在不将png文件保存在磁盘上的情况下创建电影


提前感谢。

您使用的是什么版本的mpl?应该有流式写入程序。可能有重复的