Spaces:
Sleeping
Sleeping
import gradio as gr | |
from gradio_client import Client, handle_file | |
# Function to handle video-to-image extraction and return the extracted frames as a ZIP | |
def extract_frames_from_video(video_file): | |
# Initialize the client for Video-To-Image API | |
client = Client("Abu1998/Video-To-Image") | |
# Upload the video file to the API | |
video_url = handle_file(video_file.name) | |
# Send the video file to the API for processing | |
result = client.predict( | |
video_path={"video": video_url}, | |
api_name="/predict" | |
) | |
# The result should contain the link to the ZIP file with extracted frames | |
return result['filepath'] | |
# Gradio Interface setup | |
def create_gradio_interface(): | |
with gr.Blocks() as app: | |
gr.Markdown("# Video to Image Frame Extractor") | |
# Input component for video upload | |
video_file = gr.File(type="filepath", label="Upload Video") | |
# Output component for the extracted frames (ZIP file) | |
zip_output = gr.File(label="Download Extracted Frames as ZIP") | |
# Button to trigger video-to-image extraction | |
process_button = gr.Button("Extract Frames") | |
# Action for button click | |
process_button.click(fn=extract_frames_from_video, inputs=video_file, outputs=zip_output) | |
app.launch(share=True) | |
# Run the application | |
if __name__ == "__main__": | |
create_gradio_interface() | |