lucid-hf's picture
CI: deploy Docker/PDM Space
9482f97 verified
import cv2
def frame_generator(video_path, stride=1):
cap = cv2.VideoCapture(video_path)
if not cap.isOpened():
raise FileNotFoundError(f"Cannot open video: {video_path}")
i = 0
while True:
ok, frame = cap.read()
if not ok:
break
if i % stride == 0:
yield frame
i += 1
cap.release()
class VideoWriter:
def __init__(self, out_path, fps, width, height, fourcc="mp4v"):
self._writer = cv2.VideoWriter(
out_path, cv2.VideoWriter_fourcc(*fourcc), fps, (width, height)
)
def write(self, frame):
self._writer.write(frame)
def release(self):
self._writer.release()