File size: 1,835 Bytes
edf0e5c
c616197
edf0e5c
 
67b65fe
c616197
edf0e5c
663f236
c616197
67b65fe
 
c616197
 
 
 
 
 
 
 
 
 
 
 
 
 
edf0e5c
 
 
 
c616197
 
 
 
67b65fe
c616197
 
 
 
edf0e5c
 
c616197
663f236
c616197
67b65fe
c616197
663f236
c616197
 
585f312
663f236
edf0e5c
 
c616197
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import gradio as gr
from moviepy.editor import VideoFileClip, concatenate_videoclips
import random

# Funci贸n para procesar los videos
def process_videos(videos, rotate_option):
    clips = []
    
    # Cargar y recortar cada video a los primeros 3 segundos
    for video_path in videos:
        clip = VideoFileClip(video_path)
        
        # Recortar el video a los primeros 3 segundos
        if clip.duration > 3:
            clip = clip.subclip(0, 3)
        
        # Aplicar la rotaci贸n seleccionada
        if rotate_option == "90 grados":
            clip = clip.rotate(90)
        elif rotate_option == "180 grados":
            clip = clip.rotate(180)
        elif rotate_option == "270 grados":
            clip = clip.rotate(270)
        
        clips.append(clip)
    
    # Mezclar los clips en orden aleatorio
    random.shuffle(clips)
    
    # Unir los clips mezclados
    final_clip = concatenate_videoclips(clips)
    
    # Guardar el video unido en un archivo
    output_path = "output_video.mp4"
    final_clip.write_videofile(output_path, codec="libx264")
    
    # Devolver la ruta del archivo final
    return output_path

# Crear la interfaz de Gradio
iface = gr.Interface(
    fn=process_videos,
    inputs=[
        gr.Files(label="Sube tus videos (MP4)", file_count="multiple", type="filepath"),  # Cambiamos a "filepath"
        gr.Radio(["Sin rotaci贸n", "90 grados", "180 grados", "270 grados"], label="Rotar video")
    ],
    outputs=gr.File(label="Video unido de salida"),
    title="Mezclar y Unir Videos con Rotaci贸n",
    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."
)

# Ejecutar la interfaz
iface.launch()