diff --git a/matanyone/utils/inference_utils.py b/matanyone/utils/inference_utils.py index c5bb6a0..41c4c40 100644 --- a/matanyone/utils/inference_utils.py +++ b/matanyone/utils/inference_utils.py @@ -12,8 +12,17 @@ VIDEO_EXTENSIONS = ('.mp4', '.mov', '.avi', '.MP4', '.MOV', '.AVI') def read_frame_from_videos(frame_root): if frame_root.endswith(VIDEO_EXTENSIONS): # Video file path video_name = os.path.basename(frame_root)[:-4] - frames, _, info = torchvision.io.read_video(filename=frame_root, pts_unit='sec', output_format='TCHW') # RGB - fps = info['video_fps'] + # torchvision.io.read_video was removed in torchvision >= 0.23 — read via cv2 + cap = cv2.VideoCapture(frame_root) + fps = cap.get(cv2.CAP_PROP_FPS) or 24 + frames = [] + while True: + ok, frame = cap.read() + if not ok: + break + frames.append(frame[..., [2, 1, 0]]) # BGR -> RGB + cap.release() + frames = torch.from_numpy(np.array(frames)).permute(0, 3, 1, 2).contiguous() # TCHW else: video_name = os.path.basename(frame_root) frames = []