TDN-M commited on
Commit
4943180
·
verified ·
1 Parent(s): 087ad85

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -44
app.py CHANGED
@@ -182,51 +182,41 @@ def interface():
182
  create_video_button = gr.Button("Tạo Video")
183
  video_output = gr.Video(label="Video tạo ra")
184
 
185
- def create_video_func(script,
186
- audio_file,
187
- keywords,
188
- max_clip_duration,
189
- join_order,
190
- bgm_file):
191
- """
192
- Tạo video từ các thông tin đầu vào.
193
- """
194
- try:
195
- # 1. Tính toán thời lượng video
196
- audio_clip = AudioFileClip(audio_file)
197
- video_duration = audio_clip.duration
198
-
199
- # 2. Tìm kiếm và tải video từ Pexels
200
- video_paths = []
201
- for keyword in keywords:
202
- for _ in range(
203
- int(video_duration //
204
- max_clip_duration)): # Chia thời lượng video cho thời lượng tối đa mỗi clip
205
- image_url = get_pexels_image(keyword)
206
- if image_url:
207
- video_path = download_video_from_pexels(
208
- image_url) # Cần định nghĩa hàm download_video_from_pexels
209
- video_paths.append(video_path)
210
-
211
- # 3. Ghép video
212
- temp_dir = tempfile.mkdtemp()
213
- if join_order: # Ghép ngẫu nhiên
214
- random.shuffle(video_paths)
215
- combined_video_path = os.path.join(temp_dir, "combined_video.mp4")
216
- combine_videos(combined_video_path, video_paths, audio_file,
217
- max_clip_duration)
218
-
219
- # 4. Gộp audio và nhạc nền
220
- final_video_path = "final_video.mp4"
221
- bgm_clip = AudioFileClip(bgm_file)
222
- final_audio = CompositeAudioClip([audio_clip, bgm_clip])
223
- final_video = VideoFileClip(combined_video_path).set_audio(final_audio)
224
- final_video.write_videofile(final_video_path)
225
 
226
- return final_video_path
227
- except Exception as e:
228
- print(f"Lỗi khi tạo video: {e}")
229
- return None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
230
  return app
231
 
232
  # Khởi chạy ứng dụng
 
182
  create_video_button = gr.Button("Tạo Video")
183
  video_output = gr.Video(label="Video tạo ra")
184
 
185
+ def create_video_func(script, audio_file, keywords, max_clip_duration, join_order, bgm_file):
186
+ """ Tạo video từ các thông tin đầu vào. """
187
+ try:
188
+ # 1. Tính toán thời lượng video
189
+ audio_clip = AudioFileClip(audio_file)
190
+ video_duration = audio_clip.duration
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
 
192
+ # 2. Tìm kiếm và tải video từ Pexels
193
+ video_paths = []
194
+ for keyword in keywords:
195
+ for _ in range(int(video_duration // max_clip_duration)): # Chia thời lượng video cho thời lượng tối đa mỗi clip[^1^][1]
196
+ image_url = get_pexels_image(keyword)
197
+ if image_url:
198
+ video_path = download_video_from_pexels(image_url) # Cần định nghĩa hàm download_video_from_pexels
199
+ video_paths.append(video_path)
200
+
201
+ # 3. Ghép video
202
+ temp_dir = tempfile.mkdtemp()
203
+ if join_order: # Ghép ngẫu nhiên
204
+ random.shuffle(video_paths)
205
+ combined_video_path = os.path.join(temp_dir, "combined_video.mp4")[^2^][2]
206
+ combine_videos(combined_video_path, video_paths, audio_file, max_clip_duration)
207
+
208
+ # 4. Gộp audio và nhạc nền
209
+ final_video_path = "final_video.mp4"
210
+ bgm_clip = AudioFileClip(bgm_file)
211
+ final_audio = CompositeAudioClip([audio_clip, bgm_clip])
212
+ final_video = VideoFileClip(combined_video_path).set_audio(final_audio)
213
+ final_video.write_videofile(final_video_path)
214
+
215
+ return final_video_path
216
+ except Exception as e:
217
+ print(f"Lỗi khi tạo video: {e}")
218
+ return None
219
+
220
  return app
221
 
222
  # Khởi chạy ứng dụng