Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -22,11 +22,9 @@ for file in [INTRO_VIDEO, OUTRO_VIDEO, MUSIC_BG, EJEMPLO_VIDEO]:
|
|
22 |
logging.error(f"Falta archivo necesario: {file}")
|
23 |
raise FileNotFoundError(f"Falta: {file}")
|
24 |
|
25 |
-
# Configuraci贸n de chunks
|
26 |
-
|
27 |
-
SEGMENT_DURATION = 31.5 # 30 segundos de contenido + 1.5 de transici贸n
|
28 |
TRANSITION_DURATION = 1.5 # Duraci贸n del efecto slide
|
29 |
-
OVERLAP = TRANSITION_DURATION # El overlap es igual a la duraci贸n de la transici贸n
|
30 |
|
31 |
def eliminar_archivo_tiempo(ruta, delay=1800):
|
32 |
def eliminar():
|
@@ -104,7 +102,7 @@ async def procesar_video(video_input, texto_tts, voz_seleccionada):
|
|
104 |
audios.append(tts_audio.set_start(0).volumex(0.85))
|
105 |
audio_final = CompositeAudioClip(audios).set_duration(duracion_video)
|
106 |
|
107 |
-
# Dividir video en segmentos
|
108 |
segments = []
|
109 |
current_time = 0
|
110 |
while current_time < duracion_video:
|
@@ -113,19 +111,19 @@ async def procesar_video(video_input, texto_tts, voz_seleccionada):
|
|
113 |
end_time = duracion_video
|
114 |
segment = video_original.subclip(current_time, end_time)
|
115 |
segments.append(segment)
|
116 |
-
current_time +=
|
117 |
|
118 |
# Construir video con transiciones
|
119 |
clips = []
|
120 |
for i in range(len(segments)):
|
121 |
if i == 0:
|
122 |
-
clips.append(segments[i])
|
123 |
else:
|
124 |
# Crear transici贸n entre el final del clip anterior y el inicio del actual
|
125 |
transition = create_slide_transition(clips[-1], segments[i])
|
126 |
-
clips.pop()
|
127 |
-
clips.append(transition)
|
128 |
-
clips.append(segments[i]
|
129 |
|
130 |
# Combinar todo
|
131 |
video_final = concatenate_videoclips(clips, method="compose").set_audio(audio_final)
|
|
|
22 |
logging.error(f"Falta archivo necesario: {file}")
|
23 |
raise FileNotFoundError(f"Falta: {file}")
|
24 |
|
25 |
+
# Configuraci贸n de chunks
|
26 |
+
SEGMENT_DURATION = 30 # Duraci贸n exacta entre transiciones (sin overlap)
|
|
|
27 |
TRANSITION_DURATION = 1.5 # Duraci贸n del efecto slide
|
|
|
28 |
|
29 |
def eliminar_archivo_tiempo(ruta, delay=1800):
|
30 |
def eliminar():
|
|
|
102 |
audios.append(tts_audio.set_start(0).volumex(0.85))
|
103 |
audio_final = CompositeAudioClip(audios).set_duration(duracion_video)
|
104 |
|
105 |
+
# Dividir video en segmentos de 30 segundos
|
106 |
segments = []
|
107 |
current_time = 0
|
108 |
while current_time < duracion_video:
|
|
|
111 |
end_time = duracion_video
|
112 |
segment = video_original.subclip(current_time, end_time)
|
113 |
segments.append(segment)
|
114 |
+
current_time += SEGMENT_DURATION # Avanzar exactamente 30 segundos
|
115 |
|
116 |
# Construir video con transiciones
|
117 |
clips = []
|
118 |
for i in range(len(segments)):
|
119 |
if i == 0:
|
120 |
+
clips.append(segments[i]) # El primer segmento no necesita transici贸n
|
121 |
else:
|
122 |
# Crear transici贸n entre el final del clip anterior y el inicio del actual
|
123 |
transition = create_slide_transition(clips[-1], segments[i])
|
124 |
+
clips.pop() # Eliminar el 煤ltimo clip agregado
|
125 |
+
clips.append(transition) # Agregar la transici贸n
|
126 |
+
clips.append(segments[i]) # Agregar el nuevo segmento
|
127 |
|
128 |
# Combinar todo
|
129 |
video_final = concatenate_videoclips(clips, method="compose").set_audio(audio_final)
|