python cv2 寫視頻無法讀取


用python的包cv2 對視頻進行處理時,經常會有以下操作:

  使用cv2打開一個視頻,將視頻處理后,把結果保存到本次。

代碼
根據opencv-python給出的demo,代碼如下:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

//定義視頻編碼器
//這里有必要提一下fourcc
//FourCC全稱Four-Character Codes,代表四字符代碼 (four character code), 它是一個32位的標示符,其實就是typedef unsigned int FOURCC;是一種獨立標示視頻數據流格式的四字符代碼。
//因此cv2.VideoWriter_fourcc()函數的作用是輸入四個字符代碼即可得到對應的視頻編碼器。
fourcc = cv2.VideoWriter_fourcc(*'XVID')//使用XVID編碼器
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))//出分別是:保存文件名、編碼器、幀率、視頻寬高

while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:

# 保存錄像結果
out.write(frame)

cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break

# 釋放內存
cap.release()
out.release()
cv2.destroyAllWindows()

  

存儲后的視頻一般無法打開

系統中不存在對應的編碼器!

解決辦法:

fourcc = cv2.VideoWriter_fourcc(*'XVID')//使用XVID編碼器

改為:

fourcc = cv2.VideoWriter_fourcc(*'DIXV')//使用XVID編碼器

  采用舊版avi的編碼格式即可解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM