Foros del Web » Programando para Internet » Python »

Duda creando video con Matplotlib

Estas en el tema de Duda creando video con Matplotlib en el foro de Python en Foros del Web. Hola, estoy creando un video a partir de un conjunto de imágenes con las librerías Matplotlib. Por ahora lo estoy haciendo para las parábolas. He ...
  #1 (permalink)  
Antiguo 30/08/2012, 05:14
Avatar de tofol  
Fecha de Ingreso: febrero-2008
Mensajes: 30
Antigüedad: 16 años, 2 meses
Puntos: 1
Pregunta Duda creando video con Matplotlib

Hola, estoy creando un video a partir de un conjunto de imágenes con las librerías Matplotlib. Por ahora lo estoy haciendo para las parábolas.
He creado una función parábola (x-a)^2+b y por ahora voy cambiando los valores de 'a' con b = 0 y me lo dibuja bien.
Luego paso las imágenes a vídeo con mencoder y sin problema.
Pero al ejecutar el vídeo las imágenes van demasiado deprisa y pues no se ve un pijo.
No se qué hacer para que el vídeo no vaya tan rápido, y esa es mi duda.

El código que tengo por ahora es éste:

Código Python:
Ver original
  1. from matplotlib.pylab import *
  2. import time
  3. import os
  4.  
  5. rc('text', usetex=True)
  6. rc('font', family='serif')
  7.  
  8. fparabola = lambda x,a,b : pow(x-a,2)+b
  9.  
  10.  
  11. a_valores = linspace(0, 4,5)
  12.  
  13. x = linspace(-8, 8,1000)
  14.  
  15. ficheros = []
  16.  
  17. for i in a_valores:
  18.     y = fparabola(x,i,b = 0.)
  19.     cla()
  20.     plot(x,y)
  21.     xlabel(r'\textbf{Abcisa}', fontsize=12)
  22.     ylabel(r'\textit{Ordenada}',fontsize=12)
  23.     title(r"Parabola f(x) = $\displaystyle(x-a)^{2}$", fontsize=12, color='r')
  24.     grid(True)
  25.     axhline(linewidth=1.5,color='black')
  26.     axvline(linewidth=1.5,color='black')
  27.     axis([-8.,8.,-0.1,7.])
  28.     legend(['a=%4.2f'%i])
  29.     nombre_fichero = 'tmp%04d.png'% i
  30.     savefig(nombre_fichero)
  31.     ficheros.append(nombre_fichero)
  32.     time.sleep(0.5)
  33.  
  34. os.system("mencoder 'mf://tmp*.png' -mf type=png:fps=50 -ovc lavc \
  35. -lavcopts vcodec=mpeg2video -oac copy -o parabolas.mpg")
  36.  
  37. #for nombre_fichero in ficheros: os.remove(nombre_fichero)

Aclarar, aunque no influye para nada, lo hago con Linux y el editor SpyderLib. Lo digo por lo de mencoder.

Gracias
__________________
http://linuxmusica.com
  #2 (permalink)  
Antiguo 30/08/2012, 10:47
Avatar de tofol  
Fecha de Ingreso: febrero-2008
Mensajes: 30
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Duda creando video con Matplotlib

Acabo de solucionarlo, casi creí que no se podía hacer y que tendría que hacerlo con un programa específico como OpenShot, una lata tener que hacerlo así.
Al final era poner correctamente la orden mencoder, así:

Código Python:
Ver original
  1. os.system("mencoder 'mf://tmp*.png' -mf fps=0.25 \
  2. -vf scale=640:480 -ovc lavc \
  3. -lavcopts vcodec=mpeg4 -oac copy -o parabolas.avi")

Llevo toda la tarde intentando averiguar cómo funciona el mencoder, al final ha valido la pena.

En cuanto tenga el código todo perfecto lo pongo aquí, creo que será un programa chulo.

Gracias
__________________
http://linuxmusica.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:28.