import os import cv2 from pathlib import Path def extract_frames(video_path, output_dir, fps=2): os.makedirs(output_dir, exist_ok=True) vidcap = cv2.VideoCapture(video_path) video_name = Path(video_path).stem count = 0 frame_id = 1 success, image = vidcap.read() while success: if int(vidcap.get(cv2.CAP_PROP_POS_FRAMES)) % int(vidcap.get(cv2.CAP_PROP_FPS) // fps) == 0: frame_name = f"{video_name}_{frame_id:04d}.png" cv2.imwrite(os.path.join(output_dir, frame_name), image) frame_id += 1 success, image = vidcap.read() count += 1 vidcap.release() print(f"Extracted {frame_id-1} frames from {video_path}") if __name__ == "__main__": video_dir = "videos" frames_dir = "frames" for video_file in os.listdir(video_dir): if video_file.lower().endswith(('.mp4', '.avi', '.mov')): extract_frames(os.path.join(video_dir, video_file), frames_dir)