使用FFMpegwriter的Python Matplotlib底图动画在820帧之后停止?

使用FFMpegwriter的Python Matplotlib底图动画在820帧之后停止?,第1张

概述如果我运行以下代码,它会在820帧之后停止.我在Ubuntu 12.04 VM和 Linux Mint 15上测试了这个.不幸的是没有错误消息.该程序在打印后暂停,2012-06-02T16:54:00 import os, sysimport matplotlib.pyplot as pltfrom mpl_toolkits.basemap import Basemapimport mat 如果我运行以下代码,它会在820帧之后停止.我在Ubuntu 12.04 VM和 Linux Mint 15上测试了这个.不幸的是没有错误消息.该程序在打印后暂停,2012-06-02T16:54:00

import os,sysimport matplotlib.pyplot as pltfrom mpl_toolkits.basemap import Basemapimport matplotlib.animation as animationfrom datetime import datetime,timedeltadef animation_test(start,end,fps=10,save_path='/home/username/animation_test/',\save_name="test.mp4",dpi=80):    step = timedelta(minutes = 3)    current = start    dates =[]    frame = 0    while current <=end:        dates.append(current)        current += step    fig = plt.figure(figsize=(16,9),facecolor='k',edgecolor='k')    ax = fig.add_subplot(111)    Metadata = dict(Title='MovIE Test',artist='Matplotlib',comment='MovIE support!')    writer = animation.FFMpegWriter(fps=fps,Metadata=Metadata,bitrate=20000)    direction = -0.5    lat_current = 0    lon_current = 0    with writer.saving(fig,os.path.join(save_path,save_name),dpi):        for current in dates:            ax.cla()            if direction > 0 and lat_current > 40 or \                   direction < 0 and lat_current < -40:                    direction = - direction            lat_current = lat_current + direction            lon_current = lon_current - 0.75            if lon_current < -180 :                lon_current += 360            basem = Basemap(projection='ortho',lat_0=lat_current,lon_0=lon_current,resolution='l',ax=ax)            basem.drawcoastlines()            #plt.show()            plt.savefig(os.path.join(save_path,'frame%d.png'%frame),dpi=dpi,facecolor='w',edgecolor='k')            writer.grab_frame()            frame += 1            print current.isoformat()start = datetime.Now()animation_test(datetime(2012,6,1,0),datetime(2012,4,dpi=80)print datetime.Now() - start

稍微解释一下代码:
我想制作一个卫星数据动画,它包含3分钟的小文件并在旋转的地球仪上显示.这就是为什么我选择在3分钟步骤中通过动画在以下示例代码步骤中创建循环.我刚刚删除了卫星数据的读取和绘图,以使任何人都可以执行代码.

当我从程序中删除底图并只绘制了随机数据的散点图时,程序一直在运行.

我不确定,但我不认为这是一个内存问题,因为我的RAM仅使用约.程序运行时为20%.

感谢您帮助我们深入了解这一点.

解决方法 从 https://launchpad.net/~jon-severinsson/+archive/ffmpeg安装FFMPEG版本0.10.7后,它可以工作.

所以看起来这可能是libav的一个问题,默认情况下ubuntu使用它.

总结

以上是内存溢出为你收集整理的使用FFMpegwriter的Python Matplotlib底图动画在820帧之后停止?全部内容,希望文章能够帮你解决使用FFMpegwriter的Python Matplotlib底图动画在820帧之后停止?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196874.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存