Saltar al contenido

Convierte una secuencia de imágenes a video usando Moviepy

Por fin luego de mucho luchar hemos dado con la contestación de esta duda que algunos lectores de nuestra web han presentado. Si deseas aportar algo más no dejes de dejar tu información.

Solución:

Encontré otra forma de hacerlo:

from moviepy.editor import *

img = ['1.png', '2.png', '3.png', '4.png', '5.png', '6.png',
       '7.png', '8.png', '9.png', '10.png', '11.png', '12.png']

clips = [ImageClip(m).set_duration(2)
      for m in img]

concat_clip = concatenate_videoclips(clips, method="compose")
concat_clip.write_videofile("test.mp4", fps=24)

Y de la carpeta actual:

import os
import glob
from natsort import natsorted
from moviepy.editor import *

base_dir = os.path.realpath("./images")
print(base_dir)

gif_name = 'pic'
fps = 24

file_list = glob.glob('*.png')  # Get all the pngs in the current directory
file_list_sorted = natsorted(file_list,reverse=False)  # Sort the images

clips = [ImageClip(m).set_duration(2)
         for m in file_list_sorted]

concat_clip = concatenate_videoclips(clips, method="compose")
concat_clip.write_videofile("test.mp4", fps=fps)

Así es como lo hice usando tu código inicial. El error que estabas viendo era por no especificar set_duration para los clips. También ordené los archivos en el directorio para que el mp4 resultante sea secuencial (no era el caso por defecto).

import os
from moviepy.editor import *

base_dir = os.path.realpath(".")
print(base_dir)
directory=sorted(os.listdir('.'))
print(directory)

for filename in directory:
  if filename.endswith(".png"):
    clips.append(ImageClip(filename).set_duration(1))

print(clips)
video = concatenate(clips, method="compose")
video.write_videofile('test1.mp4', fps=24)

Reseñas y calificaciones del tutorial

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *