2012-03-20 17 views
13

Estoy buscando una manera de concatenar un directorio de archivos de imágenes (por ejemplo, archivos JPEG) a un archivo de película (MOV, MP4, AVI) con Python. Idealmente, esto también me permitiría tomar múltiples archivos JPEG de ese directorio y "pegarlos" en una cuadrícula que es un cuadro de un archivo de película. ¿Qué módulos podrían lograr esto?Python JPEG a la película

+1

'ffmpeg' construido con libavfilters debería ser capaz de hacer esto fácilmente – wim

+0

mencoder también es fácil de llamar usando subproceso, que es cómo hace la cronolapse exactamente lo que está pidiendo (imágenes a película, no imágenes a grilla a película) Podría usar PIL para crear sus imágenes de grillas compuestas primero y luego compilarlas en una película de la misma manera. –

Respuesta

7

Puede utilizar el Python interface of OpenCV, en particular un VideoWriter probablemente podría hacer el trabajo. Por lo que entiendo del documento, lo siguiente sería hacer lo que quiera:

w = cvCreateVideoWriter(filename, -1, <your framerate>, 
         <your frame size>, is_color=1) 

y, en un bucle, para cada archivo:

cvWriteFrame(w, frame) 

Tenga en cuenta que no he probado este código, pero Creo que entendí bien la idea. Por favor dime si funciona

+0

hiperlínea rota a la referencia de VideoWriter. Podría ir a la fuente openCV, en lugar de a un tercero. – EngrStudent

+0

@EngrStudent Gracias por informarnos. Fijo. – agravier

1

Aquí hay una versión reducida de un script que tengo que tomó fotogramas de un video y los modificó (ese código se eliminó), y se escribió en otro video. Tal vez ayude.

import cv2 

fourcc = cv2.cv.CV_FOURCC(*'XVID') 
out = cv2.VideoWriter('out_video.avi', fourcc, 24, (704, 240)) 

c = cv2.VideoCapture('in_video.avi') 

while(1): 
    _, f = c.read() 
    if f is None: 
    break 

    f2 = f.copy() #make copy of the frame 
    #do a bunch of stuff (missing) 

    out.write(f2) #write frame to the output video 

out.release() 
cv2.destroyAllWindows() 
c.release() 

Si tiene un montón de imágenes, cárguelas en un bucle y simplemente escriba una imagen tras otra en su vid.

0

¿Es realmente importante para usted que la solución use python y produzca un archivo de película ? ¿O estas son solo tus expectativas de cómo sería una solución?

Si solo quiere poder reproducir un montón de archivos jpeg como una película, puede hacerlo sin usar Python o saturando su computadora con archivos .avi/.mov/mp4 yendo a vidmyfigs.com y usando su mouse para seleccionar archivos de imagen de su disco duro. La "película" se reproduce en su navegador web.

Cuestiones relacionadas