我有一个程序,它使用matplotlib绘制数组,然后将绘图保存为.png文件。阵列将更新、再次打印并另存为新的.png文件。图像文件的标题为image0、image1等。目前,我使用MATLAB程序,该程序使用WriteVideo((将图像放入视频中。有人知道如何在Python中做到这一点吗?
正如Quang所提到的,matplotlib确实有一个动画模块,但在后端它使用了ffmpeg(或ImageMagick或许多其他引擎(。根据我的个人经验,我建议保存单独的图像文件,然后直接使用ffmpeg创建视频。这使您能够更好地控制最终输出。
给定一个按顺序命名的文件目录,您的ffmpeg命令可能如下所示:
ffmpegCommand = "ffmpeg -start_number {0} -framerate 25 -i image%d.png -c:v libx264 -r 25 -pix_fmt yuv420p {1}.mp4".format(0, "output")
您调用的:
os.chdir(thisWorkDir) #change to the directory where your files sit
os.system(ffmpegCommand) #or use subprocess module
如果你想让视频变慢,请使用较低的帧速率(也就是说,长时间保持每张图像(
另一个技巧是,对于这种方法,使用一个起始计数器,比如1000,所以按顺序编号的图像文件名是image1000、image1001、image1002等。(您可以在ffmpeg命令中相应地更改-start_number(