如果我尝试:
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
答案 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容器中。