Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
FFMPEG-图像到视频。来自RAM的图像?(python)_Python_Image_Video_Ffmpeg_Ram - Fatal编程技术网

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

FFMPEG-图像到视频。来自RAM的图像?(python),python,image,video,ffmpeg,ram,Python,Image,Video,Ffmpeg,Ram,我挑战自己用python制作自己的寻路算法,并成功了。我正在使用PIL打开一个迷宫的图像,当这个过程完成时,它会创建一个新的图像,并为正确的路径添加颜色 虽然我无法看到从开始到结束的实际过程,但我决定用当前的进度,每一步,创建一幅原始迷宫的图片。 当这个过程结束时,我使用FFMPEG将图像(png)转换为视频(mp4) 问题是:我的上一次测试使用了100x100迷宫,它通过了4840个步骤(循环),并在0.0019秒内执行。当我保存每个步骤的图像时,它创建了4840.png图像,这大约需要12分

我挑战自己用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
操作系统(arg)

有没有一种方法可以从RAM中保存的图像制作视频,因为这样会快得多?或者一边写视频文件,一边从RAM中一个接一个地提供图像?提前谢谢

EDIT:我曾尝试使用
imageio
库发布@Zulko示例,但我面临两个问题: 1) .mp4文件不会播放。我试过好几个球员。文件上也没有缩略图。 2) 添加图像725后,处理停止。控制台仍处于打开状态,但在此之后不会发生任何事情。

使用控制台时,应该会出现以下情况:

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()

我设法使它与imageio和numpy一起工作,但我面临两个问题。1) 它创建了一个我无法播放的.mp4文件。(也没有缩略图)。2) 添加图像725后,它将停止/冻结。控制台仍处于打开状态,但在此之后不会再发生任何事情。谢谢你的帮助@对于通常的格式,我认为imageio可以使用不同的编解码器编写许多其他格式。对于图像725之后的冻结,我不知道。也许在Githuthx的项目页面上打开一个问题,我会看看我能做什么。TLDR:是一个bug,很快就会修复,临时解决方案是
pip安装--升级git+https://github.com/kuchi/imageio.git@ffmpeg增强#egg=imageio