作者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
1F:→ uranusjr:\' 是跳脱序列, 所以你这个程式应该会直接 crash 才对 01/24 11:10
2F:→ dawnknight:所以是要把"\"改成"/"吗? 不过把结果好像一样 QQ 01/24 14:50
3F:推 marksmanz:我跑你的这段程式有影片出来… 不一样的地方只有 \ -> / 01/24 21:59
4F:→ marksmanz:跟 ffmpeg 不知道哪个好用 01/24 22:02
5F:→ dawnknight:那我猜说不定是codec的问题?我是新电脑没装什麽codec 01/24 23:39
6F:→ dawnknight:请问一下m大你是选哪种压缩方式? 01/24 23:40
7F:→ cliffu06:我在createvideo有个参数你没有诶,你参考看看 01/24 23:51
8F:→ cliffu06:Cv.CV_FOURCC('X','V','I','D') 01/24 23:52
9F:→ cliffu06:如果要方便性,建议使用ffmpeg比较快 01/24 23:53
10F:→ cliffu06:至於要给opencv的图,当然要用opencv的方法开启阿XDD 01/24 23:55
11F:→ marksmanz:本来只是想重现你的问题,所以是以你的code去跑的 01/25 00:07
12F:→ marksmanz:执行下去有跳一个小视窗给我选压缩程式 01/25 00:07
13F:→ marksmanz:就选预设的 Cinepak Codec by Radius 就这样,就有video 01/25 00:08
14F:→ marksmanz:你可以用 PIL 处理完图片,再用 pyffmpeg 合成 video 01/25 00:09
15F:→ marksmanz:这样弹性应该比较好 01/25 00:10
16F:→ dawnknight:感谢大家 我来试看看 ^^ 01/25 02:29
17F:→ dawnknight:目前把\->/ 安装完codec 重开机 就可以了 谢谢大家 01/25 04:32
※ 编辑: dawnknight 来自: 128.122.72.56 (01/25 05:32)
※ 编辑: dawnknight 来自: 128.122.72.56 (01/25 05:34)