gnosticdev commited on
Commit
29652ae
verified
1 Parent(s): 27d3a0b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -23
app.py CHANGED
@@ -102,31 +102,49 @@ async def procesar_video(video_input, texto_tts, voz_seleccionada):
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:
109
- end_time = current_time + SEGMENT_DURATION
110
- if end_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)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
 
131
  # Agregar intro y outro
132
  intro = VideoFileClip(INTRO_VIDEO, target_resolution=(720, 1280))
 
102
  audios.append(tts_audio.set_start(0).volumex(0.85))
103
  audio_final = CompositeAudioClip(audios).set_duration(duracion_video)
104
 
105
+ # CORRECCI脫N: Simplificar la creaci贸n de segmentos y transiciones
106
+ # Dividir el video en segmentos exactos de 30 segundos y aplicar transiciones solo en esos puntos
 
 
 
 
 
 
 
 
107
 
108
+ # Crear un 煤nico clip con todo el contenido, con transiciones solo cada 30 segundos
109
+ video_final = video_original.copy()
 
 
 
 
 
 
 
 
 
110
 
111
+ # Si es necesario, realizar cortes y transiciones cada 30 segundos
112
+ if duracion_video > SEGMENT_DURATION:
113
+ clips = []
114
+ num_segments = int(duracion_video // SEGMENT_DURATION) + (1 if duracion_video % SEGMENT_DURATION > 0 else 0)
115
+
116
+ for i in range(num_segments):
117
+ start_time = i * SEGMENT_DURATION
118
+ end_time = min(start_time + SEGMENT_DURATION, duracion_video)
119
+
120
+ # Obtener segmento actual
121
+ segment = video_original.subclip(start_time, end_time)
122
+
123
+ # Para el primer segmento, solo a帽adirlo al resultado
124
+ if i == 0:
125
+ clips.append(segment)
126
+ else:
127
+ # Para los dem谩s segmentos, a帽adir transici贸n
128
+ prev_segment = clips[-1]
129
+ # Crear transici贸n entre segmentos
130
+ transition = create_slide_transition(prev_segment, segment)
131
+
132
+ # Recortar el segmento anterior para que termine justo antes de la transici贸n
133
+ prev_end = prev_segment.duration - TRANSITION_DURATION
134
+ if prev_end > 0:
135
+ clips[-1] = prev_segment.subclip(0, prev_end)
136
+
137
+ # A帽adir la transici贸n
138
+ clips.append(transition)
139
+
140
+ # A帽adir el segmento actual, empezando despu茅s de la transici贸n
141
+ clips.append(segment)
142
+
143
+ # Combinar todos los clips
144
+ video_final = concatenate_videoclips(clips, method="compose")
145
+
146
+ # Establecer el audio final
147
+ video_final = video_final.set_audio(audio_final)
148
 
149
  # Agregar intro y outro
150
  intro = VideoFileClip(INTRO_VIDEO, target_resolution=(720, 1280))