Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import subprocess | |
| import uuid | |
| import os | |
| # Diretório onde os vídeos convertidos serão salvos | |
| OUTPUT_DIR = "outputs" | |
| os.makedirs(OUTPUT_DIR, exist_ok=True) | |
| def webm_to_mp4(video_file): | |
| """ | |
| Recebe um arquivo WebM, converte para MP4 e retorna o caminho do arquivo. | |
| """ | |
| # Gera nome único para o MP4 | |
| output_name = f"{uuid.uuid4()}.mp4" | |
| output_path = os.path.join(OUTPUT_DIR, output_name) | |
| # Executa o ffmpeg para converter WebM -> MP4 | |
| subprocess.run( | |
| [ | |
| "ffmpeg", | |
| "-y", # sobrescrever se já existir | |
| "-i", video_file, # arquivo de entrada | |
| "-movflags", "faststart", | |
| "-pix_fmt", "yuv420p", | |
| output_path | |
| ], | |
| stdout=subprocess.DEVNULL, | |
| stderr=subprocess.DEVNULL | |
| ) | |
| return output_path | |
| # Cria a interface Gradio | |
| iface = gr.Interface( | |
| fn=webm_to_mp4, | |
| inputs=gr.File(file_types=[".webm"]), | |
| outputs=gr.File(), | |
| title="Conversor WebM → MP4", | |
| description="Envie um arquivo WebM e receba o MP4 pronto para download.", | |
| api_name="convert" # ← CRUCIAL para POST externo | |
| ) | |
| # Inicializa o app | |
| iface.launch( | |
| server_name="0.0.0.0", # necessário no Hugging Face Space | |
| server_port=7860 | |
| ) |