File size: 869 Bytes
2bef370
 
 
 
 
 
 
 
 
 
f738d92
 
 
2bef370
0f1ef53
2bef370
 
 
 
 
 
 
 
f738d92
 
2bef370
 
 
 
 
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
import cv2
import os

def extract_frames(video_path, output_dir='frames', every_n_sec=1):
    os.makedirs(output_dir, exist_ok=True)
    video_name = os.path.splitext(os.path.basename(video_path))[0]
    save_path = os.path.join(output_dir, video_name)
    os.makedirs(save_path, exist_ok=True)

    cap = cv2.VideoCapture(video_path)
    if not cap.isOpened():
        raise ValueError("Failed to open video.")

    fps = cap.get(cv2.CAP_PROP_FPS)
    interval = max(1, int(fps * every_n_sec))
    frame_idx = 0
    saved = 0

    while cap.isOpened():
        ret, frame = cap.read()
        if not ret:
            break
        if frame_idx % interval == 0:
            filename = os.path.join(save_path, f"frame_{saved:04d}.jpg")
            cv2.imwrite(filename, frame)
            saved += 1
        frame_idx += 1

    cap.release()
    return saved, save_path