2017-07-12 161 views
0

我目前正在做一個運動檢測項目,當運動被檢測到時記錄視頻。現在錄製視頻時沒有錯誤,但當我檢查視頻時,它是0字節。任何幫助將非常感激。cv2.videowriter寫入0字節的文件(python)(opencv)

這是我的代碼:

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

你在什麼操作系統上?你有沒有嘗試過不同的四CC? opencv_version -v顯示什麼視頻I/O? –

+0

Windows 7 professional。我曾嘗試過XVID和MJPG。我在哪裏運行命令「opencv_version -v」 – Aplin

+0

我在Mac/Linux上使用OpenCV,並且該命令在終端中運行 - 它可能不在Windows上,我不知道。 –

回答

0

問題是當你輸入幀大小不匹配的輸出視頻。

out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640, 480)) 

這裏你promissing你的輸出視頻是640,480,它取決於你的輸入源(如果你不調整其大小)

您可以硬編碼(檢查的幀大小輸入視頻或流源)或使用下面的代碼:

w = cap.get(cv2.CAP_PROP_FRAME_WIDTH); 
h = cap.get(cv2.CAP_PROP_FRAME_HEIGHT); 
fourcc = cv2.VideoWriter_fourcc(*'DIVX') 
out = cv2.VideoWriter('output.mp4',fourcc, 15.0, (int(w),int(h))) 

我的建議被抓住而循環外框架和與框架的寬度和高度聲明VideoWritter那裏。 此外,如果無法正常工作,請嘗試將編解碼器從XVID更改爲DIVX或MJPG。

+0

非常感謝。它現在正在工作:D – Aplin

+0

不客氣:) – asehu