LipSyncModel / video2frames.py
Raizudeen's picture
Upload 415 files
6be1ab7 verified
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()