Spaces:
Running
Running
File size: 867 Bytes
197e2d4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
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
|