import subprocess import sys import gradio as gr def install_opencv(): try: import cv2 print("OpenCV is already installed.") except ImportError: print("Installing OpenCV...") subprocess.check_call([sys.executable, "-m", "pip", "install", "opencv-python"]) print("OpenCV installation completed.") def extract_clip(video_path, clip_start, clip_duration): # ... (rest of your extract_clip function) def display_frames(frames): # ... (rest of your display_frames function) # Install OpenCV if not already installed install_opencv() # Create Gradio interface video_input = gr.inputs.Video(type="file") start_input = gr.inputs.Number(default=5, label="Start Time (seconds)") duration_input = gr.inputs.Number(default=3, label="Duration (seconds)") image_output = gr.outputs.Image(type="pil") gr.Interface(fn=lambda video, start, duration: display_frames(extract_clip(video, start, duration)), inputs=[video_input, start_input, duration_input], outputs=image_output, title="Extract Video Clip").launch()