import cv2
import os
from glob import glob

set_count = 0
frames_per_set=40

import sys
print(sys.argv[1])
    
output_dir = "/data/cameron/monocular_ests/%s"%sys.argv[2]
# Create output directory if it doesn't exist
os.makedirs(output_dir, exist_ok=True)
        
for video_path in glob(sys.argv[1]):
    print("doing ",video_path)

    # Open the video file
    cap = cv2.VideoCapture(video_path)
    if not cap.isOpened():
        print(f"Error opening video file {video_path}")
        continue
    print("doing")
    
    frame_count = 0
    read_count = 0
    
    while True:
        # Read a frame from the video
        ret, frame = cap.read()
        
        read_count+=1
        if read_count%2==0:continue # skip every other frame

        if not ret:
            break
        
        # Write frame to output directory
        if frame_count % frames_per_set == 0:
            set_count += 1
            set_dir = os.path.join(output_dir, f"set_{set_count}")
            os.makedirs(set_dir, exist_ok=True)
        
        frame_path = os.path.join(set_dir, f"frame_{frame_count + 1:08d}.jpg")
        cv2.imwrite(frame_path, frame)
        
        frame_count += 1
    
    cap.release()
    print(f"Extracted {frame_count} frames from {video_path} into {set_count} sets in {output_dir}")
