2012-03-20 5 views
13

Я ищу способ связать каталог файлов изображений (например, JPEG) с файлом видео (MOV, MP4, AVI) с Python. В идеале это также позволило бы мне взять несколько JPEG из этого каталога и «вставить» их в сетку, которая является одним фреймом видеофайла. Какие модули могли бы достичь этого?Python JPEG to movie

+1

'ffmpeg', построенный с помощью libavfilters, должен быть в состоянии сделать это легко – wim

+0

mencoder также достаточно прост для вызова с использованием подпроцесса, так как хронолапс делает именно то, что вы просите (изображения в кино, а не изображения в сетку для фильма). Вы можете использовать PIL для создания композитных изображений сетки сначала, затем скомпилировать их в фильм таким же образом. –

ответ

7

Вы можете использовать Python interface of OpenCV, в частности VideoWriter, возможно, выполнит эту работу. Из того, что я понимаю в док, следующий будет делать то, что вы хотите:

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

и, в цикле, для каждого файла:

cvWriteFrame(w, frame) 

Следует заметить, что я не пробовал этот код, но Я думаю, что я правильно понял. Скажите, пожалуйста, если это сработает.

+0

сломанная гиперлиния на ссылку VideoWriter. Можно перейти к источнику openCV, а не к третьей стороне. – EngrStudent

+0

@EngrStudent Спасибо за отчетность. Исправлена. – agravier

1

вот вырезанная версия скрипта, который у меня был с кадрами из одного видео, и они меняли их (этот код вынимали) и записывались на другое видео. возможно, это поможет.

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() 

Если у вас есть куча изображений, загружать их в цикле и просто написать одно изображение за другим на ваш VID.

0

Действительно ли вам важно, чтобы решение должно использовать python и производить фильм файл? Или это просто ваши ожидания от того, как будет выглядеть решение?

Если вы хотите просто воспроизвести кучу jpeg-файлов в качестве фильма, вы можете сделать это, не используя python или загромождать ваш компьютер файлами .avi/.mov/mp4, перейдя на vidmyfigs.com и используя вы можете выбрать файлы изображений с жесткого диска. «Видео» воспроизводится в вашем веб-браузере.