作者dawnknight (冬奈特)
看板Python
標題[問題] 多張圖片合成影片
時間Fri Jan 24 08:43:35 2014
剛剛接觸python 所以有點不太熟
有上網查了一下做法
我的程式碼如下
import cv
import os, glob,sys
path = 'C:\image\'
video = cv.CreateVideoWriter('output.avi',-1 , 10,(2456,2936), 1)
for infile in glob.glob( os.path.join(path, '*.jpg') ):
img = cv.LoadImage(infile)
cv.WriteFrame(video, img)
del video
但是這樣合成出來的影片大小都是0kb 是哪裡做錯了嗎?
另外 要讀圖片是不是只能用opencv裡的涵式讀? (ex:cv.LoadImage)
而不能用PIL裡的Image.open
麻煩大家了
============================================================
謝謝大家幫忙
重寫一次 給之後有需要的人
安裝opencv-python :
opencv-python-2.4.8.win32-py2.7.exe (
http://ppt.cc/8-Cs)
(沒安裝 codec 要安裝一下)
import cv
import os, glob
impath = 'C:/image/' # image path
Fname = 'output.avi' # output file name
FPS = 10
CODE_TYPE = cv.CV_FOURCC('X','V','I','D') # 註一
Fsize = (height,width) #frame size
video = cv.CreateVideoWriter(Fname, CODE_TYPE, FPS, Fsize, is_color = 1)
for infile in glob.glob( os.path.join(impath, '*.jpg') ):
img = cv.LoadImage(infile)
cv.WriteFrame(video, img)
del video
註一
CODE_TYPE = 0 => no compression
CODE_TYPE = -1 => jump out a msgbox asking for the compress formate
=======================================
CODE_TYPE = cv.CV_FOURCC(X,X,X,X)
=======================================
cv.CV_FOURCC('H','F','Y','U') # HuffYUV
cv.CV_FOURCC('D','R','A','C') # BBC Dirac
cv.CV_FOURCC('X','V','I','D') # MPEG-4 Part 2
cv.CV_FOURCC('X','2','6','4') # MPEG-4 Part 10 (aka. H.264 or AVC)
cv.CV_FOURCC('M','P','1','V') # MPEG-1 video
.
.
.
.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 128.122.72.56
→ uranusjr:\' 是跳脫序列, 所以你這個程式應該會直接 crash 才對 01/24 11:10
→ dawnknight:所以是要把"\"改成"/"嗎? 不過把結果好像一樣 QQ 01/24 14:50
推 marksmanz:我跑你的這段程式有影片出來… 不一樣的地方只有 \ -> / 01/24 21:59
→ marksmanz:跟 ffmpeg 不知道哪個好用 01/24 22:02
→ dawnknight:那我猜說不定是codec的問題?我是新電腦沒裝什麼codec 01/24 23:39
→ dawnknight:請問一下m大妳是選哪種壓縮方式? 01/24 23:40
→ cliffu06:我在createvideo有個參數你沒有誒,你參考看看 01/24 23:51
→ cliffu06:Cv.CV_FOURCC('X','V','I','D') 01/24 23:52
→ cliffu06:如果要方便性,建議使用ffmpeg比較快 01/24 23:53
→ cliffu06:至於要給opencv的圖,當然要用opencv的方法開啟阿XDD 01/24 23:55
→ marksmanz:本來只是想重現你的問題,所以是以你的code去跑的 01/25 00:07
→ marksmanz:執行下去有跳一個小視窗給我選壓縮程式 01/25 00:07
→ marksmanz:就選預設的 Cinepak Codec by Radius 就這樣,就有video 01/25 00:08
→ marksmanz:你可以用 PIL 處理完圖片,再用 pyffmpeg 合成 video 01/25 00:09
→ marksmanz:這樣彈性應該比較好 01/25 00:10
→ dawnknight:感謝大家 我來試看看 ^^ 01/25 02:29
→ dawnknight:目前把\->/ 安裝完codec 重開機 就可以了 謝謝大家 01/25 04:32
※ 編輯: dawnknight 來自: 128.122.72.56 (01/25 05:32)
※ 編輯: dawnknight 來自: 128.122.72.56 (01/25 05:34)