How to capture a video in Python OpenCV and save
In this article, you will learn how to capture a video using Python OpenCV and save it to a directory.
OpenCV stands for Open Source Computer Vision Library. It is a free, open source library that is used for computer vision. It provides good support in machine learning, face recognition, and deep learning. This library is written in optimised C/C++ and is supported on Windows, Linux, Android, and MacOS. This module is being used for a very wide range of applications, like- object identification, image processing, video processing, and so on. It provides lots of functions for video processing. Here, we have mentioned some of the important OpenCV methods that we have used in this article for video processing.
OpenCV record video
In OpenCV, we can read a video either from a camera or from a video file. OpenCV provides the cv2.VideoCapture() method for this. It accepts either a video file or a device index as an argument. If we want to connect one camera device, the device index will be '0', i.e., cv2.VideoCapture(0). When we want to connect two cameras, the device index will be '1'.
cap = cv2.VideoCapture(0)
Create Video Codec
A video codec is an electronic circuit or software that compresses or decompresses digital video. The FourCC is a 4-byte code used to specify the video codec. OpenCV provides the cv2.VideoWriter_fourcc() method to initialise the fourcc codec. The XVID format is more preferable.
video_cod = cv2.VideoWriter_fourcc(*'XVID')
OpenCV write video
Next, we will create a VideoWriter object. It accepts the output video file name in the first argument, the video codec in the second argument, the number of frames per second in the third argument, and the frame size in the fourth argument.
video_output = cv2.VideoWriter('captured_video.avi',
video_cod,
10,
(frame_width,frame_height))
Write the frame to file
Next, we will write the frame into the file 'captured_video.avi' using the write() method.
video_output.write(frame)
cv2.imshow('frame',frame)
OpenCV stop video recording
The given line waits for the keyboard button (X) to be pressed using the cv2.waitKey() method to stop the video recording.
if cv2.waitKey(1) & 0xFF == ord('x'):
break
Release the objects and destroy windows
Next, use the release() and the cv2.destroyAllWindows() methods to release the objects and destroy all windows.
cap.release()
video_output.release()
cv2.destroyAllWindows()
Complete Code: Python OpenCV record and save video
import cv2
import numpy as np
# Create an object to read camera video
cap = cv2.VideoCapture(0)
# Check if camera opened successfully
if (cap.isOpened() == False):
print("Camera is unable to open.")
# Set resolutions of frame.
# convert from float to integer.
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
# Create VideoWriter object.
# and store the output in 'captured_video.avi' file.
video_cod = cv2.VideoWriter_fourcc(*'XVID')
video_output= cv2.VideoWriter('captured_video.avi',
video_cod,
10,
(frame_width,frame_height))
while(True):
ret, frame = cap.read()
if ret == True:
# Write the frame into the file 'captured_video.avi'
video_output.write(frame)
# Display the frame, saved in the file
cv2.imshow('frame',frame)
# Press x on keyboard to stop recording
if cv2.waitKey(1) & 0xFF == ord('x'):
break
# Break the loop
else:
break
# release video capture
# and video write objects
cap.release()
video_output.release()
# Closes all the frames
cv2.destroyAllWindows()
print("The video was successfully saved")
Related Articles
Arithmetic Operations on Images using Python OpenCVDetect Specific Color From Image using Python OpenCV
Python OpenCV Histogram of Color Image
Python OpenCV Image Filtering
OpenCV bitwise and
Face Recognition OpenCV Source Code
Canny Edge Detector OpenCV Python
Python NumPy: Overview and Examples
Image processing using Python Pillow
Python OpenCV Histogram Equalization
Python OpenCV Histogram of Color Image
Python OpenCV Histogram of Grayscale Image
Python OpenCV Image Filtering
Python OpenCV ColorMap
Python OpenCV Gaussian Blur Filtering
Python OpenCV Overview and Examples
Draw different shapes on image using Python OpenCV
How to convert MySQL query result to JSON in Python
How to display data from MongoDB in HTML table using Python