使用python

时间:2016-06-23 10:54:27

标签: python opencv wxpython

我正在尝试从网络摄像头流中捕获视频。 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文件?

怎么做?

1 个答案:

答案 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()关闭视频文件。