首页 > 解决方案 > 如何使用带有轮廓场、矢量场和移动框的 matplotlib 制作视频?

问题描述

我尝试使用plt.fill和补丁来制作矩形,但结果是在视频中,任何先前时间步长的框都出现在该字段中,而不是像我想要的那样移动框。

在此处输入图像描述

标签: pythonmatplotlibmatplotlib-animation

解决方案


我同样matplotlib为我的YouTube 频道制作视频。

将帧单独保存为png文件,zfill用于填充区分帧的 id 号的零。在您的 Python 代码中,您可以使用计数器变量或for循环虚拟变量来创建帧 ID。

在制作每一帧时,请务必使用plt.close()以防止在以前的画布上绘制的内容也出现在您正在绘制的当前画布上。

然后使用ffmpeg以所需的帧速率将帧拼接在一起。取自hamelot.io以下示例:

ffmpeg -r 60 -f image2 -s 1920x1080 -i pic%04d.png -vcodec libx264 -crf 25  -pix_fmt yuv420p test.mp4

在上面的示例中,您可能想要调整的一些参数-r是帧速率(在上面的示例中为 60 fps)、-s最终视频的大小分辨率、格式-i中帧的字符串模式png(您可以更改此到其他格式,包括jpeg),最后的最后一个参数没有被标记,它只是你正在创建的最终视频的名称。


推荐阅读