qqwjq1981 commited on
Commit
39680fc
·
verified ·
1 Parent(s): 9f195d1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -10
app.py CHANGED
@@ -249,9 +249,9 @@ def process_entry(entry, i, video_width, video_height, add_voiceover, target_lan
249
  logger.info("Methods in AudioFileClip:")
250
  for method in dir(audio_clip):
251
  logger.info(method)
252
- audio_segment = audio_clip.with_start(entry["start"]).with_duration(entry["end"] - entry["start"]) # No subclip here
253
 
254
- return txt_clip, audio_segment
255
 
256
  def add_transcript_voiceover(video_path, translated_json, output_path, add_voiceover=False, target_language="en"):
257
  """
@@ -267,18 +267,21 @@ def add_transcript_voiceover(video_path, translated_json, output_path, add_voice
267
  futures = [executor.submit(process_entry, entry, i, video.w, video.h, add_voiceover, target_language)
268
  for i, entry in enumerate(translated_json)]
269
 
 
 
270
  for future in concurrent.futures.as_completed(futures):
271
  try:
272
- txt_clip, audio_segment = future.result()
273
- text_clips.append(txt_clip)
274
- if add_voiceover and audio_segment:
275
- audio_segments.append(audio_segment)
276
  except Exception as e:
277
  logger.error(f"Error processing entry: {e}")
278
-
279
- # Sort text clips and audio segments based on their start times
280
- text_clips.sort(key=lambda clip: clip.start)
281
 
 
 
 
282
  final_video = CompositeVideoClip([video] + text_clips)
283
 
284
  logger.info("Methods in CompositeVideoClip:")
@@ -286,7 +289,7 @@ def add_transcript_voiceover(video_path, translated_json, output_path, add_voice
286
  logger.info(method)
287
 
288
  if add_voiceover and audio_segments:
289
- audio_segments.sort(key=lambda segment: segment.start)
290
  final_audio = CompositeAudioClip(audio_segments) # Critical fix
291
  final_audio = final_audio.with_duration(video.duration)
292
 
 
249
  logger.info("Methods in AudioFileClip:")
250
  for method in dir(audio_clip):
251
  logger.info(method)
252
+ audio_segment = audio_clip.with_duration(entry["end"] - entry["start"]) # No subclip here
253
 
254
+ return i, txt_clip, audio_segment
255
 
256
  def add_transcript_voiceover(video_path, translated_json, output_path, add_voiceover=False, target_language="en"):
257
  """
 
267
  futures = [executor.submit(process_entry, entry, i, video.w, video.h, add_voiceover, target_language)
268
  for i, entry in enumerate(translated_json)]
269
 
270
+ # Collect results with original index i
271
+ results = []
272
  for future in concurrent.futures.as_completed(futures):
273
  try:
274
+ i, txt_clip, audio_segment = future.result()
275
+ results.append((i, txt_clip, audio_segment))
 
 
276
  except Exception as e:
277
  logger.error(f"Error processing entry: {e}")
278
+
279
+ # Sort by original index i
280
+ results.sort(key=lambda x: x[0])
281
 
282
+ # Extract sorted clips
283
+ text_clips = [clip for i, clip, segment in results]
284
+
285
  final_video = CompositeVideoClip([video] + text_clips)
286
 
287
  logger.info("Methods in CompositeVideoClip:")
 
289
  logger.info(method)
290
 
291
  if add_voiceover and audio_segments:
292
+ audio_segments = [segment for i, clip, segment in results if segment is not None]
293
  final_audio = CompositeAudioClip(audio_segments) # Critical fix
294
  final_audio = final_audio.with_duration(video.duration)
295