TDN-M commited on
Commit
10cef6a
·
verified ·
1 Parent(s): 9b2b870

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -20
app.py CHANGED
@@ -9,7 +9,7 @@ from docx import Document
9
  from content_generation import create_content, CONTENT_TYPES
10
  from openai import OpenAI
11
  import edge_tts
12
- import subprocess
13
  import time
14
 
15
  # Khởi tạo client OpenAI với API key từ biến môi trường
@@ -62,9 +62,6 @@ def create_video(audio_file, custom_text, text_color, output_video="output.mp4")
62
  # Chọn file video nền mặc định
63
  background_video = "default_background.mp4" # Đặt tên file video nền mặc định
64
 
65
- # Định nghĩa văn bản trên video
66
- text_on_video = custom_text if custom_text else ""
67
-
68
  # Định nghĩa màu sắc chữ
69
  color_map = {
70
  "Trắng": "white",
@@ -75,22 +72,23 @@ def create_video(audio_file, custom_text, text_color, output_video="output.mp4")
75
  }
76
  font_color = color_map.get(text_color, "white") # Mặc định là trắng nếu không tìm thấy
77
 
78
- # Lệnh ffmpeg để tạo video
79
- command = [
80
- "ffmpeg",
81
- "-stream_loop", "-1", # Lặp lại video nền vô hạn
82
- "-i", background_video, # Video nền mặc định
83
- "-i", audio_file, # File audio đầu vào
84
- "-vf", f"drawtext=text='{text_on_video}':fontcolor={font_color}:fontsize=50:fontfile=/LHanoienne.otf:x=10:y=10:box=1:[email protected]:boxborderw=5", # Văn bản trên video
85
- "-t", "45.7", # Thời lượng video
86
- "-c:v", "libx264", # Codec video
87
- "-c:a", "aac", # Codec audio
88
- "-shortest", # Dừng khi audio kết thúc
89
- "-y", # Ghi đè file nếu tồn tại
90
- output_video # File video đầu ra
91
- ]
92
- # Chạy lệnh ffmpeg
93
- subprocess.run(command, check=True)
 
94
  return output_video
95
 
96
  def interface():
 
9
  from content_generation import create_content, CONTENT_TYPES
10
  from openai import OpenAI
11
  import edge_tts
12
+ from moviepy.editor import VideoFileClip, AudioFileClip, CompositeVideoClip, TextClip
13
  import time
14
 
15
  # Khởi tạo client OpenAI với API key từ biến môi trường
 
62
  # Chọn file video nền mặc định
63
  background_video = "default_background.mp4" # Đặt tên file video nền mặc định
64
 
 
 
 
65
  # Định nghĩa màu sắc chữ
66
  color_map = {
67
  "Trắng": "white",
 
72
  }
73
  font_color = color_map.get(text_color, "white") # Mặc định là trắng nếu không tìm thấy
74
 
75
+ # Tạo video nền
76
+ video_clip = VideoFileClip(background_video)
77
+
78
+ # Tạo audio clip
79
+ audio_clip = AudioFileClip(audio_file)
80
+
81
+ # Tạo video clip với audio
82
+ final_video = video_clip.set_audio(audio_clip)
83
+
84
+ # Tạo text clip nếu có văn bản tùy chỉnh
85
+ if custom_text:
86
+ txt_clip = TextClip(custom_text, fontsize=50, color=font_color, font='/LHanoienne.otf')
87
+ txt_clip = txt_clip.set_position(('left', 'top')).set_duration(final_video.duration)
88
+ final_video = CompositeVideoClip([final_video, txt_clip])
89
+
90
+ # Lưu video cuối cùng
91
+ final_video.write_videofile(output_video, codec='libx264', audio_codec='aac')
92
  return output_video
93
 
94
  def interface():