問題: cv2.VideoWrite() 寫出為空
症狀:輸出的文件為空或損壞或無法打開
原因:
①封裝支持
保存文件名需要寫明保存文件的封裝格式,后綴為 .avi 可以成功打開編碼器,而諸如 .mp4,.rmvb, 未能打開。
②運行環境沒有相對應的編碼器
1 import numpy as np 2 import cv2 3 cap = cv2.VideoCapture(0) 4 # Define the codec and create VideoWriter object 5 fourcc = cv2.VideoWriter_fourcc(*'XVID') 6 out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
在上圖代碼框中,第5行,定義視頻編碼方式(fourcc),但因為電腦中沒有相對應的解碼器,因此無法轉換。
解決辦法: 將fourcc 轉換成 -1, 即手動設置編碼方式。
1 import numpy as np 2 import cv2 3 cap = cv2.VideoCapture(0) 4 # Define the codec and create VideoWriter object
5 out = cv2.VideoWriter('output.avi', -1, 20.0, (640,480))
然后出現下圖,手動選擇,嘗試在當前電腦上存在的壓縮程序,如果仍無法解決,可嘗試下載安裝一些視頻編輯軟件
參考鏈接:
1. 完美cvCreateVideoWriter寫出AVI文件為空的問題