# Generar video a partir de imagenes

**URL:** <https://pyar.discourse.group/t/generar-video-a-partir-de-imagenes/328>\
**Category:** Sin categoría\
**Created:** [12 Junio, 2020 16:59 UTC](https://pyar.discourse.group/t/generar-video-a-partir-de-imagenes/328 "2020-06-12T16:59:53Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![tenuki](https://avatars.discourse-cdn.com/v4/letter/t/e19adc/32.png) [@tenuki](https://pyar.discourse.group/u/tenuki)\
**Post date:** [12 Junio, 2020 16:59 UTC](https://pyar.discourse.group/t/generar-video-a-partir-de-imagenes/328/1 "2020-06-12T16:59:54Z")

</div>

Hola Gente!!

Que harian si tuvieran que generar un video a partir de las imagenes (que ya estan generadas y en memoria) en python?

Idealmente me gustaria no depender de binarios externos (ffmpeg) … aunque calculo que depender de una lib podria conformarme… o sea lo ideal seria que fuera pure-python en realidad… pero bueno de ultima con una lib podria ser.

Que formato de video? en principio quisiera conseguir h.264… pero un formato mas sencillo tipo… no me acuerdo el nombre de ese que es imagen tras imagen (y que no es gif…) que tiene algo de compresion extra-frame estaria mejor.

Que resolucion necesitaria? No se… no me preocupa tanto la resolucion en cantidad de frames por segundo tampoco… 10 x ejemplo seria super aceptable.

Alguien hizo algo de esto??  
Gracias!!  
dave

---

<div class="post-metadata">

**Author:** ![pardo\_bsso](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/pardo_bsso/32/89_2.png) [@pardo\_bsso](https://pyar.discourse.group/u/pardo_bsso)\
**Post date:** [12 Junio, 2020 18:27 UTC](https://pyar.discourse.group/t/generar-video-a-partir-de-imagenes/328/2 "2020-06-12T18:27:18Z")

</div>

Hola, qué tal?

Más allá de esto qué es lo que querés lograr?

Que soporten animación tenés también mjpg, webp y (a)png.

Salute

---

<div class="post-metadata">

**Author:** ![humitos](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/humitos/32/147_2.png) [@humitos](https://pyar.discourse.group/u/humitos)\
**Post date:** [15 Junio, 2020 20:20 UTC](https://pyar.discourse.group/t/generar-video-a-partir-de-imagenes/328/3 "2020-06-15T20:20:33Z")

</div>

Hola @tenuki! Yo probaría usar moviepy: [https://zulko.github.io/moviepy/](https://zulko.github.io/moviepy/)

Las pocas veces que lo use pude hacer lo que quise en muy poco tiempo sin saber nada al respecto.

---

<div class="post-metadata">

**Author:** ![tenuki](https://avatars.discourse-cdn.com/v4/letter/t/e19adc/32.png) [@tenuki](https://pyar.discourse.group/u/tenuki)\
**Post date:** [15 Junio, 2020 21:56 UTC](https://pyar.discourse.group/t/generar-video-a-partir-de-imagenes/328/4 "2020-06-15T21:56:36Z")

</div>

Hola Pardo\_bsso! Cuantas consonantes juntas, me hace acordar a css! 😃

> [@pardo\_bsso](#):
>
> Más allá de esto qué es lo que querés lograr?
> 
> Que soporten animación tenés también mjpg, webp y (a)png.

Hace mucho que quiero generar “video” a partir de imagenes… y ahora hice un scriptcito que genera unas imagenes que son semejantes a un cuadro muy geometrico pero con elementos de azar y queria ir variandolos con el tiempo en un video… no se si me explico…

Si… creo que mjpeg era el formato del que no estoy seguro del nombre… webp lo ubico de nombre y apng no demasiado tampoco.

Finalmente, me gustaria generar video y enviarlo a chromecast…

---

<div class="post-metadata">

**Author:** ![tenuki](https://avatars.discourse-cdn.com/v4/letter/t/e19adc/32.png) [@tenuki](https://pyar.discourse.group/u/tenuki)\
**Post date:** [15 Junio, 2020 21:58 UTC](https://pyar.discourse.group/t/generar-video-a-partir-de-imagenes/328/5 "2020-06-15T21:58:32Z")

</div>

Hola Humitos!

Hice alguna cosita con moviepy… creo que pegar imagenes y hacer un video de 10 segundos o cosa asi de forma muy facil… eventualmente me gustaria que el algo que use no dependa de opencv… pero ya es demasiado pedir por ahora. ☹

Gracias!!

---

<div class="post-metadata">

**Author:** ![manuq](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/manuq/32/134_2.png) [@manuq](https://pyar.discourse.group/u/manuq)\
**Post date:** [17 Junio, 2020 22:07 UTC](https://pyar.discourse.group/t/generar-video-a-partir-de-imagenes/328/6 "2020-06-17T22:07:09Z")

</div>

Hola tenuki! Me da curiosidad porqué no querrías depender de un framework multimedia completo y super probado como ffmpeg. Las veces que he tenido que hacer algo parecido simplemente me comuniqué desde Python con el ejecutable en cuestión mediante la biblioteca `subprocess`.

Si es para evitar el I/O de las imágenes en memoria, quizá podrías ver si te sirve [python-vlc](https://pypi.org/project/python-vlc/) tanto para “estremear” los frames como para “castear” directamente al chromecast.

Avisá cuando sea el estreno que me sumo al streaming!

---

<div class="post-metadata">

**Author:** ![tenuki](https://avatars.discourse-cdn.com/v4/letter/t/e19adc/32.png) [@tenuki](https://pyar.discourse.group/u/tenuki)\
**Post date:** [18 Junio, 2020 06:05 UTC](https://pyar.discourse.group/t/generar-video-a-partir-de-imagenes/328/7 "2020-06-18T06:05:34Z")

</div>

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](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!!!
