Podemos trabajar la edición de video automatizando una serie de procesos con el módulo MoviePy . En el siguiente script, puedes ver ejemplos de métodos como sincronización, manejo de sonido, transición, voltear , hacer videos a partir de imágenes, etc.
Es una secuencia de comandos útil si deseamos automatizar la edición de videos o necesitamos automatización en nuestros proyectos:
# Automatizar la edición de video
# pip install moviepy
import moviepy.editor as mp
# Cargar archivo
video = mp.VideoFileClip("test.mp4")
# Obtener información sobre el video
print(video.duration)
print(video.fps)
# Obtener información de audio del video
audio = video.audio
print(audio.duration)
# Extraer audio del video
aud = video.audio
aud.write_audiofile("test_audio.mp3")
# Concatenar dos videos
vid1 = mp.VideoFileClip("test.mp4")
vid2 = mp.VideoFileClip("test2.mp4")
conc = mp.concatenate_videoclips([vid1, vid2])
conc.write_videofile("Merged_Video.mp4")
# Invertir un video
rev = mp.VideoFileClip("test.mp4").fx(mp.vfx.time_mirror)
rev.write_videofile("Reverse_Video.mp4")
# Acelerar un video
spd = mp.VideoFileClip("test.mp4").fx(mp.vfx.speedx, 2)
spd.write_videofile("Speed_Video.mp4")
# Recortar video
trim = mp.VideoFileClip("test.mp4").subclip(0, 5)
trim.write_videofile("Trim_Video.mp4")
# Cambiar el tamaño de un video
resize = mp.VideoFileClip("test.mp4").resize(height=360)
resize.write_videofile("Resize_Video.mp4")
# Voltear un video
flip = mp.VideoFileClip("test.mp4").fx(mp.vfx.mirror_x)
flip.write_videofile("Flip_Video.mp4")
# Agregar audio a un video
add_audio = mp.VideoFileClip("test_video.mp4")
add_audio.write_videofile("Set_Audio_Video.mp4")
# Convertir imágenes en video
images = [mp.ImageClip(img) for img in ["test.jpg", "test2.jpg"]]
convert = mp.concatenate_videoclips(images)
convert.write_videofile("Convert_Images_to_Video.mp4")
# Agregar transición entre dos videos
transition = mp.VideoFileClip("test.mp4")
transition = transition.fx(mp.vfx.loop, duration=5)
transition = transition.fx(mp.vfx.fadein, duration=5)
transition = transition.fx(mp.vfx.fadeout, duration=5)
transition.write_videofile("Transition_Video.mp4")