FFMPEG - 图像到视频。来自RAM的图像? (蟒蛇)

时间:2015-06-01 21:47:26

标签: python image video ffmpeg ram

我挑战自己在python中创建自己的寻路算法并成功了。我正在使用PIL打开迷宫图像,当过程完成时,它会创建一个新图像并为正确的路径添加颜色。

虽然不能从头到尾看到实际的过程,但我希望用每一步创建原始迷宫的图片。 当过程结束时,我使用FFMPEG将图像(png)转换为视频(mp4)。

问题在于:我的上一次测试使用了100x100迷宫,它通过4840步(循环)并在0.0019秒内执行。当我保存每一步的图像时,它创建了4840个.png图像,大约需要12~分钟,总共使用28Mb~(存储)。

我正在使用此命令行代码:

arg = ffmpeg -framerate 30 -i img%00d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 os.system(arg)

有没有办法从保存在RAM中的图像制作视频,因为这会更快?或者像我一样写视频文件,从RAM中提供一个接一个的图像?提前谢谢!

编辑:我曾尝试使用imageio库发布@Zulko示例,但我遇到了两个问题: 1).mp4文件无法播放。我试过几个球员。文件上也没有缩略图。 2)添加图像725后,该过程停止。控制台仍处于打开状态,但此后没有任何反应。

1 个答案:

答案 0 :(得分:1)

使用imageio,它应该是这样的:

import imageio

writer = imageio.get_writer('some_file.mp4', fps=some_fps)

for step in steps:
    im = make_some_image_for_this(step)
    # ( 'im' should be a HxWx3 RGB numpy array I think )
    writer.append_data(im)
writer.close()