2017-06-20 60 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中有更多的相關信息。