Upscaler-Video / app.py
fugam's picture
Update app.py
8de25b5 verified
Raw
History Blame Contribute Delete
1.43 kB
import gradio as gr
import ffmpeg
import os
# Fonction pour découper la vidéo en frames, appliquer l'upscaling, puis reconstruire la vidéo
def upscale_video(input_video):
input_path = "/tmp/input_video.mp4"
output_path = "/tmp/upscaled_video.mp4"
# Sauvegarder la vidéo téléchargée
input_video.save(input_path)
# Utiliser FFmpeg pour extraire les frames de la vidéo
frames_dir = "/tmp/frames/"
os.makedirs(frames_dir, exist_ok=True)
ffmpeg.input(input_path).output(f"{frames_dir}frame_%04d.png").run()
# Appliquer un upscaling sur chaque frame
for frame in os.listdir(frames_dir):
frame_path = os.path.join(frames_dir, frame)
upscaled_frame_path = os.path.join(frames_dir, "upscaled_" + frame)
ffmpeg.input(frame_path).output(upscaled_frame_path, vf="scale=1280:720").run()
# Reconstruire la vidéo avec les frames upscalées
ffmpeg.input(f"{frames_dir}upscaled_%04d.png", framerate=24).output(output_path).run()
# Retourner la vidéo upscalée
return output_path
# Interface Gradio
iface = gr.Interface(
fn=upscale_video,
inputs=gr.Video(label="Téléchargez votre vidéo"),
outputs=gr.File(label="Vidéo upscalée"),
title="Upscaling de vidéo",
description="Téléchargez une vidéo et augmentez sa résolution avec cette interface."
)
# Lancer Gradio avec un lien partageable
iface.launch(share=True)