Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import cv2 | |
| def process_video(input_video): | |
| cap = cv2.VideoCapture(input_video) | |
| output_path = "output.mp4" | |
| fps = int(cap.get(cv2.CAP_PROP_FPS)) | |
| width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) | |
| height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) | |
| video = cv2.VideoWriter(output_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (width, height)) | |
| iterating, frame = cap.read() | |
| while iterating: | |
| # flip frame vertically | |
| frame = cv2.flip(frame, 0) | |
| display_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) | |
| video.write(frame) | |
| yield display_frame, None | |
| iterating, frame = cap.read() | |
| video.release() | |
| yield display_frame, output_path | |
| with gr.Blocks() as demo: | |
| with gr.Row(): | |
| input_video = gr.Video(label="input") | |
| processed_frames = gr.Image(label="last frame") | |
| output_video = gr.Video(label="output") | |
| with gr.Row(): | |
| examples = gr.Examples(["parrot.mp4"], inputs=input_video) | |
| process_video_btn = gr.Button("process video") | |
| process_video_btn.click(process_video, input_video, [processed_frames, output_video]) | |
| demo.queue() | |
| demo.launch() |