Spaces:
Runtime error
Runtime error
| import cv2 | |
| import os | |
| import tempfile | |
| import logging | |
| from typing import List | |
| logging.basicConfig(level=logging.INFO) | |
| logger = logging.getLogger(__name__) | |
| def extract_frames(video_path: str, skip: int = 1) -> List: | |
| """ | |
| Extract frames from a video. | |
| Args: | |
| video_path (str): Path to the video file. | |
| skip (int): Number of frames to skip between extractions. | |
| Returns: | |
| List of BGR frames as numpy arrays. | |
| """ | |
| logger.info(f"Extracting frames from video: {video_path}") | |
| frames = [] | |
| cap = cv2.VideoCapture(video_path) | |
| frame_count = 0 | |
| while True: | |
| ret, frame = cap.read() | |
| if not ret: | |
| break | |
| if frame_count % skip == 0: | |
| frames.append(frame) | |
| frame_count += 1 | |
| cap.release() | |
| logger.info(f"Extracted {len(frames)} frames") | |
| return frames | |