J'essaie actuellement de faire un film à partir d'images, mais je n'ai rien trouvé d'utile.
Voici mon code jusqu'à présent:
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()
Vous pouvez envisager d'utiliser un outil externe tel que ffmpeg pour fusionner les images dans un film (voir la réponse ici ) ou d'essayer d'utiliser OpenCv pour combiner les images dans un film comme dans l'exemple ici .
Je joins ci-dessous un code que j'ai utilisé pour combiner tous les fichiers png d'un dossier appelé "images" dans une vidéo.
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, 0, 1, (width,height))
for image in images:
video.write(cv2.imread(os.path.join(image_folder, image)))
cv2.destroyAllWindows()
video.release()
Merci, mais j'ai trouvé une solution alternative en utilisant ffmpeg:
def save():
os.system("ffmpeg -r 1 -i img%01d.png -vcodec mpeg4 -y movie.mp4")
Mais merci pour votre aide :)