Spaces:
Sleeping
Sleeping
| import cv2 | |
| def extract_frames(video_path, num_frames=32): | |
| cap = cv2.VideoCapture(video_path) | |
| if not cap.isOpened(): | |
| raise RuntimeError("Cannot open video") | |
| total = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) | |
| step = max(total // num_frames, 1) | |
| frames = [] | |
| for i in range(num_frames): | |
| cap.set(cv2.CAP_PROP_POS_FRAMES, i * step) | |
| ret, frame = cap.read() | |
| if not ret: | |
| break | |
| frames.append(frame) | |
| cap.release() | |
| if len(frames) == 0: | |
| raise RuntimeError("No frames extracted") | |
| while len(frames) < num_frames: | |
| frames.append(frames[-1]) | |
| return frames |