GAS17 commited on
Commit
edf0e5c
1 Parent(s): f6f83d6

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -0
app.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from moviepy.editor import VideoFileClip, concatenate_videoclips
3
+ import random
4
+
5
+ # Función para procesar los videos
6
+ def process_videos(videos, rotate_option):
7
+ clips = []
8
+
9
+ # Cargar y recortar cada video a los primeros 3 segundos
10
+ for video in videos:
11
+ clip = VideoFileClip(video.name)
12
+
13
+ # Recortar el video a los primeros 3 segundos
14
+ if clip.duration > 3:
15
+ clip = clip.subclip(0, 3)
16
+
17
+ # Aplicar la rotación seleccionada
18
+ if rotate_option == "90 grados":
19
+ clip = clip.rotate(90)
20
+ elif rotate_option == "180 grados":
21
+ clip = clip.rotate(180)
22
+ elif rotate_option == "270 grados":
23
+ clip = clip.rotate(270)
24
+
25
+ clips.append(clip)
26
+
27
+ # Mezclar los clips en orden aleatorio
28
+ random.shuffle(clips)
29
+
30
+ # Unir los clips mezclados
31
+ final_clip = concatenate_videoclips(clips)
32
+
33
+ # Guardar el video unido en un archivo
34
+ output_path = "output_video.mp4"
35
+ final_clip.write_videofile(output_path, codec="libx264")
36
+
37
+ # Devolver la ruta del archivo final
38
+ return output_path
39
+
40
+ # Crear la interfaz de Gradio
41
+ iface = gr.Interface(
42
+ fn=process_videos,
43
+ inputs=[
44
+ gr.Video(type="file", label="Sube tus videos", file_count="multiple"),
45
+ gr.Radio(["Sin rotación", "90 grados", "180 grados", "270 grados"], label="Rotar video")
46
+ ],
47
+ outputs=gr.File(label="Video unido de salida"),
48
+ title="Mezclar y Unir Videos con Rotación",
49
+ description="Sube varios videos en formato 9:16. El sistema cortará los primeros 3 segundos de cada video, los mezclará en un orden aleatorio, aplicará la rotación seleccionada y generará un nuevo archivo de video.",
50
+ button_text="Procesar Video"
51
+ )
52
+
53
+ # Ejecutar la interfaz
54
+ iface.launch()