2012-03-20 66 views
13

我正在尋找一種將圖像文件(例如JPEG)目錄連接到使用Python的電影文件(MOV,MP4,AVI)的方法。理想情況下,這也允許我從該目錄中獲取多個JPEG,並將它們「粘貼」到電影文件的一幀中。哪些模塊可以實現這一點?Python JPEG到電影

+1

用libavfilters構建的'ffmpeg'應該可以輕鬆地做到這一點 – wim 2012-03-20 22:01:59

+0

mencoder也很容易使用子進程調用,這是chronolapse如何完全按照您的要求進行的(圖像到電影,而不是圖像到網格到電影)。您可以先使用PIL創建複合網格圖像,然後以相同方式將它們編譯成電影。 – 2012-03-20 22:14:16

回答

7

你可以使用Python interface of OpenCV,特別是VideoWriter可能可以完成這項工作。從我瞭解的文檔,下面會做你想要什麼:

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

,並在一個循環中,爲每個文件:

cvWriteFrame(w, frame) 

請注意,我沒有嘗試這樣的代碼,但我認爲我的想法是正確的。請告訴我它是否有效。

+0

破壞hyperline到VideoWriter參考。可能會轉到openCV源代碼,而不是第三方。 – EngrStudent 2017-10-07 19:26:15

+0

@EngrStudent感謝您的報告。固定。 – agravier 2017-10-11 06:56:00

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文件作爲電影,你可以通過去vidmyfigs.com並且使用.avi/.mov/mp4文件來使用python或使你的電腦變得混亂。您的鼠標從硬盤中選擇圖像文件。 「電影」在您的Web瀏覽器中播放。