简体   繁体   中英

Record a Webcam video with python

I am trying to capture a video from a webcam stream. The python logic is

If button is pressed, store the current stream until I press the stop button.

Note : I am using OpenCV to stream a webcam video inside a wxPython window.

  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))

I have tried the above code but it only stores 5.54kb file in the output dirctory?

How to do it?

you have set up a video writer object by

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

but you have not used write method to write the video frame buffer.

To do it, you need to call write method of the writer object that you instantiated by:

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

This has to be put in a loop or be called by wx.Timer , otherwise only one frame will be saved.

finally, when you are done with streaming, do out.release() to close the video file.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM