Spaces:
Running
Running
import cv2 | |
import os | |
# Global state | |
VIDEO_DIR = "data" | |
video_files = [os.path.join(VIDEO_DIR, file) for file in sorted(os.listdir(VIDEO_DIR)) if file.endswith((".mp4", ".avi"))] | |
video_index = 0 | |
cap = None | |
def get_next_video_frame(): | |
global cap, video_index | |
if not video_files: | |
raise RuntimeError("No video files found in the 'data' directory.") | |
if cap is None or not cap.isOpened(): | |
cap = cv2.VideoCapture(video_files[video_index]) | |
ret, frame = cap.read() | |
if not ret: | |
cap.release() | |
video_index = (video_index + 1) % len(video_files) | |
cap = cv2.VideoCapture(video_files[video_index]) | |
ret, frame = cap.read() | |
if not ret: | |
raise RuntimeError(f"Cannot read video {video_files[video_index]}") | |
return frame | |
def reset_video_index(): | |
global video_index | |
video_index = 0 | |