用python快速保存电影或动画
我想创建一个电影或动画使用大量的2D情节。我以两种不同的方式尝试了它,一种是使用用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
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?应该有流式写入程序。可能有重复的