| | 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] |
| |
|
| | 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() |
| |
|