This code records video from a webcam:
import cv2
w,h = 640,480
cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)
out = cv2.VideoWriter('test1.mp4', cv2.VideoWriter_fourcc(*'XVID'), 24.0, (w,h))
while True:
key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
break
ret, frame = cap.read()
cv2.imshow('frame', frame)
out.write(frame)
out.release()
cap.release()
cv2.destroyAllWindows()
It works, but i want to make it write list of frames:
import cv2
w,h = 640,480
frames = []
cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)
out = cv2.VideoWriter('test1.mp4', cv2.VideoWriter_fourcc(*'XVID'), 24.0, (w,h))
while True:
key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
break
ret, frame = cap.read()
cv2.imshow('frame', frame)
frames.append(frame)
for frame in frames:
out.write(frame)
out.release()
cap.release()
cv2.destroyAllWindows()
And this gives me a 4 kb file, that i can't open.
What's wrong between cv2 and arrays?
question from:
https://stackoverflow.com/questions/65902327/cv2-writing-stream-from-array 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…