gnosticdev commited on
Commit
af20d0a
verified
1 Parent(s): 06cfc41

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -7
app.py CHANGED
@@ -63,17 +63,33 @@ def concatenate_pexels_videos(text, num_videos=5):
63
  tmp_video.write(video_response.content)
64
  video_clips.append(VideoFileClip(tmp_video.name))
65
 
 
66
  final_clip = concatenate_videoclips(video_clips, method="compose")
67
- output_path = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4").name
68
- final_clip.write_videofile(output_path, codec="libx264", audio_codec="aac", fps=24)
69
- return output_path
70
 
71
- # Combinar audio, video y m煤sica
72
  def combine_audio_video(audio_file, video_clip, music_clip=None):
73
  audio_clip = AudioFileClip(audio_file)
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  final_clip = video_clip.set_audio(audio_clip)
 
 
75
  if music_clip:
76
  final_clip = final_clip.set_audio(CompositeAudioClip([audio_clip, music_clip]))
 
 
77
  output_path = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4").name
78
  final_clip.write_videofile(output_path, codec="libx264", audio_codec="aac", fps=24)
79
  return output_path
@@ -101,8 +117,7 @@ def process_input(text, txt_file, mp3_file, selected_voice, rate, pitch):
101
 
102
  # Concatenar m煤ltiples videos de Pexels basados en el texto
103
  try:
104
- video_clip_path = concatenate_pexels_videos(final_text, num_videos=5)
105
- video_clip = VideoFileClip(video_clip_path)
106
  except Exception as e:
107
  return f"Error al buscar videos en Pexels: {e}", None
108
 
@@ -112,7 +127,7 @@ def process_input(text, txt_file, mp3_file, selected_voice, rate, pitch):
112
  else:
113
  music_clip = None
114
 
115
- # Combinar audio, video y m煤sica
116
  final_video = combine_audio_video(audio_file, video_clip, music_clip)
117
  return final_video
118
 
 
63
  tmp_video.write(video_response.content)
64
  video_clips.append(VideoFileClip(tmp_video.name))
65
 
66
+ # Concatenar videos y ajustar duraci贸n
67
  final_clip = concatenate_videoclips(video_clips, method="compose")
68
+ return final_clip
 
 
69
 
70
+ # Combinar audio, video y m煤sica con fade out
71
  def combine_audio_video(audio_file, video_clip, music_clip=None):
72
  audio_clip = AudioFileClip(audio_file)
73
+
74
+ # Ajustar la duraci贸n del video al timeline del speech (+5 segundos para fade out)
75
+ total_duration = audio_clip.duration + 5 # 5 segundos adicionales
76
+ if video_clip.duration < total_duration:
77
+ video_clip = video_clip.fx(lambda clip: clip.set_duration(total_duration)) # Extender la duraci贸n del video
78
+
79
+ # Aplicar fade out al audio
80
+ audio_clip = audio_clip.fadeout(5)
81
+
82
+ # Aplicar fade out al video
83
+ video_clip = video_clip.fadeout(5)
84
+
85
+ # Combinar audio y video
86
  final_clip = video_clip.set_audio(audio_clip)
87
+
88
+ # A帽adir m煤sica de fondo si aplica
89
  if music_clip:
90
  final_clip = final_clip.set_audio(CompositeAudioClip([audio_clip, music_clip]))
91
+
92
+ # Exportar el video final
93
  output_path = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4").name
94
  final_clip.write_videofile(output_path, codec="libx264", audio_codec="aac", fps=24)
95
  return output_path
 
117
 
118
  # Concatenar m煤ltiples videos de Pexels basados en el texto
119
  try:
120
+ video_clip = concatenate_pexels_videos(final_text, num_videos=5)
 
121
  except Exception as e:
122
  return f"Error al buscar videos en Pexels: {e}", None
123
 
 
127
  else:
128
  music_clip = None
129
 
130
+ # Combinar audio, video y m煤sica con fade out
131
  final_video = combine_audio_video(audio_file, video_clip, music_clip)
132
  return final_video
133