File size: 689 Bytes
2bef370
4ac47d1
 
2bef370
 
4ac47d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2bef370
4ac47d1
 
 
 
 
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
import gradio as gr
import cv2
import os


def extract_frames(video_file):
    video_path = video_file.name
    cap = cv2.VideoCapture(video_path)
    frame_paths = []
    i = 0
    os.makedirs("frames", exist_ok=True)
    while True:
        ret, frame = cap.read()
        if not ret:
            break
        path = f"frames/frame_{i:03d}.jpg"
        cv2.imwrite(path, frame)
        frame_paths.append(path)
        i += 1
    cap.release()
    return frame_paths[:5]  # return first 5 for demo

demo = gr.Interface(
    fn=extract_frames,
    inputs=gr.File(label="Upload Video", file_types=[".mp4"]),
    outputs=gr.Gallery(label="Extracted Frames").style(grid=5)
)

demo.launch()