0

我正在尝试从网络摄像头中抓取帧,然后将它们写入视频中。它有效,视频显示了一些东西,但它没用。

在这里,您可以看到我获得的视频示例:

我得到的那种视频

脚本很大,所以我会尝试为这个问题挑选相关的部分:

import cv
capture = cv.CaptureFromCAM(1) # from webcam
frame  = cv.QueryFrame(capture)
newvideo = 'Videos/%d_%d_%d_%d_%d_%d.avi' % (localtime()[0],localtime()[1],localtime()[2],localtime()[3],localtime()[4],localtime()[5])
video = cv.CreateVideoWriter(newvideo, cv.CV_FOURCC('D','I','V','X'), 30, cv.GetSize(frame), 1)

while(1):
frame  = cv.QueryFrame(capture)
cv.WriteFrame(video, frame)
key = cv.WaitKey( int((1/30.)*1000)+1 )
4

1 回答 1

1

提示:开始防御性地编码并检查您拨打的电话的返回。例如:

video = cv.CreateVideoWriter(newvideo, cv.CV_FOURCC('D','I','V','X'), 30, cv.GetSize(frame), 1)    
if not video :
    print "Error in creating video writer"
    sys.exit(1)

这可能是与编解码器相关的问题,因此请尝试使用其他编解码器创建视频:

video = cv.CreateVideoWriter(newvideo, cv.CV_FOURCC('F','L','V','1'), 30, cv.GetSize(frame), 1)  

更新已安装的可能是个好主意。

于 2012-05-10T16:20:03.893 回答