Spaces:
Running
Running
import gradio as gr | |
import cv2 | |
import numpy as np | |
# Function to extract the last frame from a video | |
def extract_last_frame(video_file): | |
cap = cv2.VideoCapture(video_file) | |
# print(cap) | |
# Get the total number of frames in the video | |
total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) | |
# Check if the video is empty | |
if total_frames <= 0: | |
return None | |
# Set the position to the last frame | |
cap.set(cv2.CAP_PROP_POS_FRAMES, total_frames - 1) | |
# Read and return the last frame | |
ret, last_frame = cap.read() | |
return cv2.cvtColor(last_frame, cv2.COLOR_BGR2RGB) | |
demo = gr.Interface( | |
fn=extract_last_frame, | |
inputs=gr.Video(), | |
outputs="image", | |
title="Video to Last Frame", | |
description="Extract the last frame from video (π€ the project if it helps!)", | |
) | |
if __name__ == "__main__": | |
demo.launch(debug=True) | |