我正在尝试从网络摄像头流中捕获视频。 python逻辑是
如果按下按钮,则存储当前流,直到我按下停止 按钮。
注意:我正在使用OpenCV在wxPython窗口中流式传输网络摄像头视频。
def record(self, evt):
cap = cv2.VideoCapture(0)
# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
我已经尝试了上面的代码,但它只在输出目录中存储了5.54kb文件?
怎么做?
答案 0 :(得分:0)
您已通过
设置了视频编写器对象 out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
但您还没有使用write
方法来编写视频帧缓冲区。
为此,您需要调用您实例化的编写器对象的write
方法:
success, buf = cap.read()
out.write(buf)
这必须放在循环中或由wx.Timer
调用,否则只保存一帧。
最后,当您完成流式传输后,请out.release()
关闭视频文件。