2016-07-07 83 views
1

我試圖保存使用視頻編寫器對象的OpenCV視頻流時按下按鈕,但它只保存5.5kb文件。python opencv不會使用視頻編寫器對象編寫視頻?

def OnRecord(self, evt): 
    capture = cv2.VideoCapture(0) 
    if not(capture.isOpened()): 
     print "Error" 
    # video recorder 
    fourcc = cv2.cv.CV_FOURCC(*'XVID') 
    video_writer = cv2.VideoWriter.open("output.avi", fourcc, 20, (640, 480), True) 

    # record video 
    while (capture.isOpened()): 
     ret, frame = capture.read() 
     if ret==True: 
      video_writer.write(frame) 
      cv2.imshow('Video', frame) 
     else: 
      break 

def OnCancel(self, evt): 
    capture.release() 
    video_writer.release() 
    cv2.destroyAllWindows() 

有什麼問題?

注意 - 我在Raspberry-pi上。

回答

0

video_writer = cv2.VideoWriter.open("output.avi", fourcc, 20, (640, 480),True)

給我的錯誤。我試圖

video_writer = cv2.VideoWriter("output.avi", fourcc, 20, (640, 480), True)

和它的作品。

還要確保你releasecapturevideo_writer使用capture.release()video_writer.release()

cv2.imshow('Video', frame)不會這樣工作,您必須在添加cv2.waitKey(1)後才能使其正常工作。

編輯:

它可能與你的設備驅動程序有問題。按照說明here它應該很好。

+0

'DEF繼陝西(個體,EVT):'' 捕獲= cv2.VideoCapture(0)'' 如果(未capture.isOpened()):'' 打印 「錯誤」'我試圖上面的代碼它打印「錯誤」所以可能是我的循環概率。糾正我,如果我錯了我會嘗試你的,讓你知道盡快。謝謝@shiva – SivamNatesan

+0

這個'if'聲明不在你上面​​發佈的代碼中,你能發佈確切的代碼嗎? – shiva

+0

我編輯了我的問題,對不起這個爛攤子感到抱歉。 @shiva – SivamNatesan