gnosticdev commited on
Commit
27d3a0b
verified
1 Parent(s): 9d18d9e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -10
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 (Modificada para 30 segundos)
26
- CHUNK_SIZE = 60 # 1 minuto por chunk
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 con superposici贸n controlada
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 += (SEGMENT_DURATION - OVERLAP) # Avance considerando el overlap
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].subclip(TRANSITION_DURATION)) # Eliminar parte ya usada en transici贸n
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)