2017-07-06 69 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 –

相關問題