En este artículo veremos cómo podemos crear un videoclip en MoviePy. MoviePy es un módulo de Python para la edición de videos, que se puede usar para operaciones básicas en videos y GIF. El video está formado por los cuadros, la combinación de cuadros crea un video, cada cuadro es una imagen individual. VideoClip es la clase base para todos los demás videoclips en MoviePy. Si todo lo que desea es editar archivos de video, nunca lo necesitaremos. Esta clase es práctica cuando queremos hacer animaciones a partir de fotogramas generados por otra biblioteca. Todo lo que necesitamos es definir una función make_frame(t) que devuelva una array numpy HxWx3 (de enteros de 8 bits) que represente el marco en el momento t.
Para hacer esto usaremos el método VideoClip
. Sintaxis: VideoClip(hacer_fotograma, duración)
Argumento: Toma método y duración como argumento
Retorno: Devuelve el objeto VideoClip
A continuación se muestra la implementación.
Python3
# importing matplotlib and numpy import matplotlib.pyplot as plt import numpy as np # importing movie py libraries from moviepy.editor import VideoClip from moviepy.video.io.bindings import mplfig_to_npimage # numpy array x = np.linspace(-2, 2, 200) # matplot subplot fig, ax = plt.subplots() duration = 2 # method to get frames def make_frame(t): # clear ax.clear() # plotting line ax.plot(x, np.sin(x + 2 * np.pi / duration * t), lw = 3) ax.set_ylim(-1.5, 2.5) # returning numpy image return mplfig_to_npimage(fig) # creating Video Clip clip = VideoClip(make_frame, duration = 3) # displaying clip clip .ipython_display(fps = 20, loop = True, autoplay = True)
Producción :
Moviepy - Building video __temp__.mp4. Moviepy - Writing video __temp__.mp4 Moviepy - Done ! Moviepy - video ready __temp__.mp4
Otro ejemplo
Python3
# importing matplotlib and numpy import matplotlib.pyplot as plt import numpy as np # importing movie py libraries from moviepy.editor import VideoClip from moviepy.video.io.bindings import mplfig_to_npimage # numpy array x = np.linspace(-4, 4, 100) # matplot subplot fig, ax = plt.subplots() duration = 2 # method to get frames def make_frame(t): # clear ax.clear() # plotting line ax.plot(x, np.cos(x + 4 * np.pi / duration * t), lw = 3) ax.set_ylim(-1.5, 2.5) # returning numpy image return mplfig_to_npimage(fig) # creating Video Clip clip = VideoClip(make_frame, duration = 3) # displaying clip clip .ipython_display(fps = 20, loop = True, autoplay = True)
Producción :
Moviepy - Building video __temp__.mp4. Moviepy - Writing video __temp__.mp4 Moviepy - Done ! Moviepy - video ready __temp__.mp4
Publicación traducida automáticamente
Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA