# import os
# print(os.getcwd())
# exit()


import cv2
import numpy as np

video_path = r"D:\my_pc\downloads\5.5K views · 324 reactions ｜ 200張！ ｜ By Wang Joan.mp4"

cap = cv2.VideoCapture(video_path)
if not cap.isOpened():
    raise IOError("Cannot open video file")

frame_id = 0
prev_frame = None
similarity_threshold = 0.95  # 95%

def is_similar(frame1, frame2, threshold):
    if frame1.shape != frame2.shape:
        return False
    diff = cv2.absdiff(frame1, frame2)
    nonzero_count = np.count_nonzero(diff)
    total_pixels = diff.size
    similarity = 1 - (nonzero_count / total_pixels)
    return similarity >= threshold

while True:
    ret, frame = cap.read()
    if not ret:
        break
    frame_id += 1
    if prev_frame is None or not is_similar(frame, prev_frame, similarity_threshold):
        cv2.imwrite(f"D:\\my_pc\\downloads\\frame\\raw\\frame_{frame_id}.jpg", frame)
        print(f"Saved frame {frame_id}")
        prev_frame = frame
        
cap.release()
