2017-06-20 100 views
0

我想要得到一个视频流并使用OpenCV和python-2.7保存它。但是,当我运行该程序时,它被卡在一帧,并在关闭视频后被打破。OpenCV:我如何编写视频,为什么我的框架卡住了?

这是什么原因?

这是我试过的代码。

import cv2 
import numpy as np 

cap=cv2.VideoCapture(0) 
fourcc=cv2.VideoWriter_fourcc(*'XVID') 
out=cv2.VideoWriter('output.avi',fourcc,20.0,(640,480)) 

while True: 
    ret,frame=cap.read() 
    out.write(frame) 
    cv2.imshow('Frame',frame) 
    if cv2.waitKey(0) & 0xFF == ord('q'): 
    break 
cap.release() 
out.release() 
cv2.destroyAllWindows() 

回答

1

问题出在你最后的按钮按下。

你有

if cv2.waitKey(0) & 0xFF == ord('q'):

应该

if cv2.waitKey(1) & 0xFF == ord('q'):

把0将导致代码达到这一点,然后等待该行永远。 放置1允许它等待1毫秒,然后继续前进,如果没有发生。

在文档here中有更多的相关信息。