我有一个文件夹,里面有225张Map。所以,我用 imageio
. 不管是汇编10张Map、150张Map,还是全部225张Map,最后一张图片总是不包括在视频中。
import os
from natsort import humansorted
import imageio
os.chdir(r'folder/path/')
filenames = humansorted((fn for fn in os.listdir('.') if fn.endswith('.png')))
with imageio.get_writer('earthquake_video.mp4', mode='I', fps=2) as writer:
for filename in filenames:
image = imageio.imread(filename)
writer.append_data(image)
writer.close()
1条答案
按热度按时间w7t8yxp51#
对我来说,只要我在windows media player中打开生成的视频,你的代码就可以处理10、150甚至225个图像。如果我打开视频在vlc媒体播放器,我得到扭曲的播放,不仅跳过了最后一帧(我有从0到224的数字,所以每一个错误的帧都会被注意到。)所以,如果你使用vlc媒体播放器,你的问题很可能就是这个stackoverflow问答中讨论的问题。
上
imageio
github问题追踪者,也有这个问题,链接到另一个stackoverflow问题,这个问题似乎和你的问题一样。但是,我仍然认为这是vlc媒体播放器的上述问题。不幸的是,我无法从使用
output_params
从imageio
,即设置-framerate
或者-r
. 所以,我的解决方法是建立一个fps
(此处:2
),和fps
对于实际播放(在vlc媒体播放器中),例如。30
,然后只需根据需要添加尽可能多的相同帧即可伪造所需的图像fps
,即。30 // 2 = 15
在这里。下面是一些代码:
生成的视频“看起来”和以前一样(在windows media player中),但现在,它也可以在vlc media player中正常播放。
甚至,如果这不是你的实际问题,我猜这些信息将有助于其他遇到你的问题,但实际上从与vlc媒体播放器声明的问题痛苦。