【问题标题】:Record a Webcam video with python使用 python 录制网络摄像头视频
【发布时间】:2016-06-23 10:54:27
【问题描述】:

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

怎么做?

【问题讨论】:

  • 你有什么尝试吗?
  • 不,到目前为止我没有尝试过,因为我是 python 新手。
  • 我想说你的问题太宽泛了。我建议您试一试,并在此过程中遇到更具体的问题。我不希望在 SO 上得到这类问题的答案。
  • 谢谢你的建议,我自己试试。

标签: python opencv wxpython


【解决方案1】:

您已经通过

设置了一个视频编写器对象

out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))

但是您还没有使用write 方法写入视频帧缓冲区。

为此,您需要调用您实例化的编写器对象的write 方法:

success, buf = cap.read()
out.write(buf)

这必须放在循环中或者被wx.Timer调用,否则只会保存一帧。

最后,当您完成流式传输后,请使用out.release() 关闭视频文件。

【讨论】:

    猜你喜欢
    • 2014-09-10
    • 2017-09-16
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多