File size: 1,371 Bytes
908a1ab |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
import cv2
import os
import argparse
parser = argparse.ArgumentParser(description='code for extracting frames from video')
parser.add_argument('--input_video', type=str, help='Video path to save result. See default for an e.g.',
default='output_videos_wav2lip/1.mp4')
parser.add_argument('--frames_path', type=str, help='Video path to save result. See default for an e.g.',
default='frames_wav2lip/1/')
args = parser.parse_args()
# Read the video file
video_path = args.input_video
video = cv2.VideoCapture(video_path)
# Get the frames per second (fps) and duration of the video
fps = int(video.get(cv2.CAP_PROP_FPS))
duration = int(video.get(cv2.CAP_PROP_FRAME_COUNT))
# Create a folder to store the extracted frames
frame_folder = args.frames_path
os.makedirs(frame_folder, exist_ok=True)
# Initialize a counter for the frame index
frame_index = 0
# Loop through each frame of the video and save it as an image file
for i in range(duration):
ret, frame = video.read()
if not ret:
break
# Save the frame as an image file in the frame folder
frame_file = os.path.join(frame_folder, f'frame_{frame_index:05d}.jpg')
cv2.imwrite(frame_file, frame)
frame_index += 1
print("Frames extracted and stored at ", args.frames_path)
# Release the video object
video.release() |