2017-07-06 64 views
2

我目前试图用电影制作电影,但找不到有用的东西。如何用python中的图像制作电影

这是到目前为止我的代码:

import time 

from PIL import ImageGrab 

x =0 

while True: 
    try: 
     x+= 1 
     ImageGrab().grab().save('img{}.png'.format(str(x)) 
    except: 
     movie = #Idontknow 
     for _ in range(x): 
      movie.save("img{}.png".format(str(_))) 

movie.save() 

回答

10

你可以考虑使用像ffmpeg的外部工具的图像合并成电影(见回答here),或者你可以尝试使用OPENCV的图像组合放入电影中,如示例here

我附上下面的代码剪辑我用来将所有png文件从名为“images”的文件夹合并到视频中。

import cv2 
import os 

image_folder = 'images' 
video_name = 'video.avi' 

images = [img for img in os.listdir(image_folder) if img.endswith(".png")] 
frame = cv2.imread(os.path.join(image_folder, images[0])) 
height, width, layers = frame.shape 

video = cv2.VideoWriter(video_name, -1, 1, (width,height)) 

for image in images: 
    video.write(cv2.imread(os.path.join(image_folder, image))) 

cv2.destroyAllWindows() 
video.release() 
+0

这实际上并不总是这样的工作对Ubuntu的https:// github上。 com/ContinuumIO/anaconda-issues/issues/223 –

+0

感谢您发布此解决方案!它让我经历了很多使用其他解决方案的问题。 – MikeyB

4

谢谢,但我发现使用的ffmpeg的替代解决方案:

def save(): 
    os.system("ffmpeg -r 1 -i img%01d.png -vcodec mpeg4 -y movie.mp4") 

但还是非常感谢你的帮助:)

+0

如何在合并所有图像时定义fps –

相关问题