我正在尝试使用moviepy从图像列表制作视频。我使用moviepy.editor
时遇到问题,因为它不喜欢使用PyInstaller冻结,所以我使用moviepy.video.VideoClip.ImageClip
表示图像,moviepy.video.compositing.CompositeVideoClip.CompositeVideoClip
表示剪辑。我在名为.jpg
的列表中列出了images
张图片:
from moviepy.video.VideoClip import ImageClip
from moviepy.video.compositing.CompositeVideoClip import CompositeVideoClip
clips = [ImageClip(m).set_duration(1) for m in images]
concat_clip = CompositeVideoClip(clips))
concat_clip.write_videofile('VIDEO.mp4', fps=1)
它成功制作了.mp4
,但视频只有一秒钟,而且是图片列表中的最后一张图片。我可以查看clips
,它包含应该在视频中的~30张图片。我可以使用moviepy.editor
之后的CompositeVideoClip
方法来执行此操作,但method='compose'
def convolucion_3x3(arreglo, kernel):
(dim_x, dim_y) = arreglo.shape
(ker_x, ker_y) = kernel.shape
matriz_convolucionada = np.zeros((dim_x, dim_y))
for i in range(dim_x):
for j in range(dim_y):
resultado = 0
for x in range(-1, 2):
try:
if i + x not in range(dim_x):
raise ValueError()
for y in range(-1, 2):
try:
if j + y not in range(dim_y):
raise ValueError()
resultado += arreglo[i + x, j + y] * kernel[x + 1][y + 1]
'''
Para el kernel sumo un 1 a cada índice para que lo corra desde 0 hasta 2 y no de -1 a 1
'''
except ValueError:
pass
except ValueError:
pass
matriz_convolucionada[i][j] = resultado
return matriz_convolucionada
中似乎没有类似的参数,我认为这个问题是。
答案 0 :(得分:0)
使用concatenate_videoclips可能会有所帮助。我使用下面的代码,效果很好。
clips = [ImageClip(m).set_duration(1/25)
for m in file_list_sorted]
concat_clip = concatenate_videoclips(clips, method="compose")
concat_clip.write_videofile("test.mp4", fps=25)