MoviePy es un módulo de Python para la edición de video, que se puede usar para operaciones básicas (como cortes, concatenaciones, inserciones de títulos), composición de video (también conocida como edición no lineal), procesamiento de video o para crear efectos avanzados. Puede leer y escribir los formatos de video más comunes, incluido GIF.
Instalación
Para instalar la biblioteca del editor de películas, abra la terminal y escriba:
pip install moviepy
Nota: este módulo instala automáticamente FFmpeg. Sin embargo, es posible que solicite la instalación en algunos casos.
Incluso después de instalar MoviePy, habrá algunas funciones que no se pueden usar a menos que se instale ImageMagick, funciones como agregar texto en el video o en GIF.
La instalación de ImageMagick
ImageMagick no es estrictamente necesaria, solo si el usuario desea escribir textos. También se puede usar como back-end para GIF, aunque el usuario puede hacer GIF con MoviePy sin ImageMagick. A continuación se muestra el enlace para descargar ImageMagick
https://imagemagick.org/script/download.php
Una vez instalado, MoviePy detectará automáticamente ImageMagick, excepto en Windows. Los usuarios de Windows deben ingresar al archivo moviepy/config_defaults.py y proporcionar la ruta al binario ImageMagick llamado magick.
IMAGEMAGICK_BINARY = "C:\\Program Files\\ImageMagick_VERSION\\magick.exe" or for some older versions of ImageMagick it will be IMAGEMAGICK_BINARY = "C:\\Program Files\\ImageMagick_VERSION\\convert.exe"
Para usar videos cuando se mejora el artículo: haga clic aquí
. Ejemplo 1
Cargaremos el video y cortaremos un clip de todo el video, luego el video se girará al revés, en este ejemplo, no es necesario instalar ImageMagick. .
A continuación se muestra la implementación.
Python3
# Import everything needed to edit video clips from moviepy.editor import * # loading video dsa gfg intro video clip = VideoFileClip("dsa_geek.webm") # clipping of the video # getting video for only starting 10 seconds clip = clip.subclip(0, 10) # rotating video by 180 degree clip = clip.rotate(180) # Reduce the audio volume (volume x 0.5) clip = clip.volumex(0.5) # showing clip clip.ipython_display(width = 280)
Producción :
Moviepy - Building video __temp__.mp4. Moviepy - Writing video __temp__.mp4 Moviepy - Done ! Moviepy - video ready __temp__.mp4
Ejemplo 2:
cargaremos el video y cortaremos un clip de todo el video, luego agregaremos texto en el video, en este ejemplo tenemos que instalar ImageMagick, de lo contrario no funcionará.
A continuación se muestra la implementación.
Python3
# Import everything needed to edit video clips from moviepy.editor import * # loading video dsa gfg intro video clip = VideoFileClip("dsa_geek.webm") # clipping of the video # getting video for only starting 10 seconds clip = clip.subclip(0, 10) # Reduce the audio volume (volume x 0.8) clip = clip.volumex(0.8) # Generate a text clip txt_clip = TextClip("GeeksforGeeks", fontsize = 70, color = 'white') # setting position of text in the center and duration will be 10 seconds txt_clip = txt_clip.set_pos('center').set_duration(10) # Overlay the text clip on the first video clip video = CompositeVideoClip([clip, txt_clip]) # showing video video.ipython_display(width = 280)
Producción :
Moviepy - Building video __temp__.mp4. Moviepy - Writing video __temp__.mp4 Moviepy - Done ! Moviepy - video ready __temp__.mp4
Exportación de archivos de vídeo:
Necesita la función write_videofile(arg1, arg2). Si no lo hace, no se reflejará en el archivo del disco duro ya que el archivo se cargó en la RAM.
Python3
import moviepy.editor as me # Our focus is on how to export video file, # you can use any code, or just refer following code ''' vid= me.VideoFileClip('Video_1.mp4') # Grabbing Object from storage # Creating a page with 'My Title' text in red colout with given size and background colour white and fontsize 30 ''' SYNTAX: obj=me.TextClip("Text That you want", color='{as string}', size=(as,tuple), bg_color='as string', fontsize=int ) ''' title=me.TextClip('My Title',color='red',size=(1920,1000),bg_color='white',fontsize=30) # title.set_duration(int seconds) title_clip_ = title.set_duration(3) #For 3 seconds My Title willbe shown in video render=me.concatenate_videoclips([title_clip_,vid]) # Combining our manually created Video i.e My Title of 3 sec with grabbed video ''' me.write_videofile("Name you want".mp4,endcoding) # If successfully executor there will be file.mp4 or at path # If you have explicitly mentioned else in same folder as program print("Done")
Producción:
Fusionando archivos de video –
Podemos fusionar 2 archivos de video en un solo archivo en orden de nuestro requerimiento
Python3
import moviepy.editor ''' Grabbing The video's from storage syntax: variable_holding_video_name= moviepy.editor.VideoFileCLip("{{Filename}}.{{extension}}") ''' clip_1= moviepy.editor.VideoFileClip("Video_1.mp4") clip_2= moviepy.editor.VideoFileClip("Video_2.mp4") ''' TO join the video's i.e. concatenate the videos' use function concatenate_videoclips(list_of_clips_to_mearged) syntax: variable_to_hold_mearged_video= moviepy.editor.concatenate_videclips([video_1,Video_2,. . .]) ''' Mearged_video=moviepy.editor.concatenate_videoclips([clip_1,clip_2]) # Saving File as output.mp4 in same folder # libx264 is encoding lib for creating video stream(H.264) Mearged_video.write_videofile("Output.mp4",codec='libx264') print("Done")
Producción:
Para saber la duración del video:
Python3
import moviepy.editor as me # Grabbing file vid= me.VideoFileClip("Video_1.mp4") print(str(vid.duration))
Producción:
9.04
Ventajas de MoviePy
- Simple: las operaciones básicas se pueden realizar en una línea, el código es fácil de aprender y fácil de entender para los recién llegados.
- Flexible: los usuarios tienen control total sobre los fotogramas del video y el audio, y crear sus propios efectos es tan fácil como Py.
- Portable: el código utiliza un software muy común, como Numpy y FFMPEG. Y puede ejecutarse en casi cualquier máquina con casi cualquier versión de Python.
Desventajas de MoviePy :
- MoviePy aún no puede transmitir videos (leer desde una cámara web o reproducir un video en vivo en una máquina distante)
- Realmente no está diseñado para el procesamiento de video que involucra muchos cuadros sucesivos de una película (como la estabilización de video, necesitará otro software para eso)
- Pueden surgir problemas de memoria si el usuario usa muchas fuentes de video, audio e imagen al mismo tiempo (>100)
Publicación traducida automáticamente
Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA