如何设置cv.CreateVideoWriter的帧大小

时间:2011-07-27 22:29:43

标签: python opencv typeerror computer-vision

如果我尝试:

writer = cv.CreateVideoWriter(file, -1,(int(800),int(600)), is_color=1)

-OR -

writer = cv.CreateVideoWriter(file, -1,(800,600), is_color=1)

-OR -

writer = cv.CreateVideoWriter(file, -1,(800.0,600.0), is_color=1)

我收到错误:

  

TypeError:需要浮点数

有了这个,我得到了进步:

writer = cv.CreateVideoWriter(file, -1, 25.0, (800,600), is_color=1)
  

错误:Gstreamer Opencv后端不支持此编解码器。

输入文件为 .png ,输出为 .avi

1 个答案:

答案 0 :(得分:2)

您需要传递有效的 fourcc fps

fourcc = cv.CV_FOURCC('X','V','I','D')
fps = 25.0 # or 30.0 for a better quality stream
writer = cv.CreateVideoWriter(file, fourcc, 25.0, (800,600), is_color=1)

或者,您可以在Python中使用命名参数。这种方式不易出错:

writer = cv.CreateVideoWriter(
    filename=file,
    fourcc=cv.CV_FOURCC('X','V','I','D'),
    fps=25.0,
    frame_size=(800,600),
    is_color=1)

fourcc 是目标avi中视频流的编解码器的32位标识符。根据{{​​3}},gstreamer的可能值为:

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

我相信以上所有内容都可以放在avi容器中。