Hola Manuq! como va??
Ah, me gusta y uso ffmpeg! Pero, a veces me pasa que no necesito algo “perfecto”, optimo y super-compatible y prefiero usar algo como https://github.com/rcarmo/pngcanvas/blob/master/pngcanvas.py por ejemplo para generar un png… no se bien porque. Creo que un motivo es, aunque no vaya a leer toda la especificacion de png, si uso tal o cual parte, poder ver como esta implementada y entenderla mas a fondo. (creo que a todos los que simpatizamos con el open source disfrutamos un poco de eso, no?).
Para compensar tantas palabras, dejo el scriptcito que hace un videito con moviepy… no lo arme de cero… lo saque del ejemplo de la pagina de moviepy y creo que ni lo lei, lo modifique y funciono… no se si esta apestoso el codigo pero funciona… pero si, de vuelta, no quisiera generar files, creo uqe moviepy requiere opencv (!?supongo que por performance para cargar muchos datos y no ocupar demasiada memoria etc… pero no seria mi caso…):
import moviepy.editor as mpy
import gizeh as gz
from math import pi
BLUE = (59/255, 89/255, 152/255)
WHITE = (255, 255, 255)
VIDEO_SIZE = (800, 600)
def render_text(t):
surface = gz.Surface(640, 60, bg_color=(1, 1, 1))
text = gz.text("Let's build together", fontfamily="Charter",
fontsize=30, fontweight='bold', fill=BLUE, xy=(320, 40))
text.draw(surface)
return surface.get_npimage()
text = mpy.VideoClip(render_text, duration=10)
SB_logo_path = 'screenshot.png'
sb_logo = mpy.ImageClip(SB_logo_path).set_position(('center', 0)).resize(width=200)
video = mpy.CompositeVideoClip(
[
sb_logo,
# text.set_position(
# ('center', sb_logo.size[1])),
# stars.set_position(
# ('center', sb_logo.size[1] + text.size[1])
# )
],
size=VIDEO_SIZE).on_color(
color=WHITE,
col_opacity=1).set_duration(10)
video.write_videofile('video_with_python.mp4', fps=10)
Saludos!!!