VideoTrim / app.py
AndreySokolov01's picture
Update app.py
cef68e0 verified
raw
history blame
1.29 kB
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):
num_cols = 4 # Number of columns in the image grid
num_rows = (len(frames) + num_cols - 1) // num_cols
grid_image = cv2.hconcat([cv2.hconcat(frames[i:i+num_cols]) for i in range(0, len(frames), num_cols)])
return grid_image
# 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()