Spaces:
Sleeping
Sleeping
Update src/text_to_video.py
Browse files- src/text_to_video.py +8 -8
src/text_to_video.py
CHANGED
@@ -15,9 +15,9 @@ def format_time(seconds):
|
|
15 |
hours, mins = divmod(mins, 60)
|
16 |
return f"{int(hours):02}:{int(mins):02}:{int(sec):02},{int((sec % 1) * 1000):03}"
|
17 |
def get_audio_duration(audio_path):
|
18 |
-
# Lọc các file có đuôi .
|
19 |
audio_paths = os.listdir(audio_path)
|
20 |
-
audio_list = [file for file in audio_paths if file.endswith(".
|
21 |
|
22 |
# Khởi tạo danh sách audio duration
|
23 |
duration_list = []
|
@@ -56,11 +56,11 @@ def create_srt_from_time_and_text(duration_time, text_folder, output_srt):
|
|
56 |
with open(output_srt, 'w', encoding='utf-8') as f:
|
57 |
f.write(subtitle)
|
58 |
def concatenate_audio_files(audio_folder, output_audio_path):
|
59 |
-
# Lọc tất cả các file âm thanh .
|
60 |
audio_clips = []
|
61 |
|
62 |
for file in sorted(os.listdir(audio_folder)):
|
63 |
-
if file.endswith('.
|
64 |
audio_path = os.path.join(audio_folder, file)
|
65 |
audio_clip = AudioFileClip(audio_path)
|
66 |
audio_clips.append(audio_clip)
|
@@ -69,7 +69,7 @@ def concatenate_audio_files(audio_folder, output_audio_path):
|
|
69 |
final_audio = concatenate_audioclips(audio_clips)
|
70 |
|
71 |
# Lưu kết quả vào file output
|
72 |
-
final_audio.write_audiofile(output_audio_path, codec = '
|
73 |
|
74 |
print(f"File audio đã được lưu tại: {output_audio_path}")
|
75 |
def create_video_from_images(image_folder, audio_path, output_video_path):
|
@@ -96,7 +96,7 @@ def create_video_from_images(image_folder, audio_path, output_video_path):
|
|
96 |
final_video .audio = audio
|
97 |
|
98 |
# Xuất video
|
99 |
-
final_video.write_videofile(
|
100 |
|
101 |
print(f"Video đã được lưu tại: {output_video_path}")
|
102 |
def wrap_text(text, max_width):
|
@@ -146,8 +146,8 @@ def add_subtitles_to_video(video_path, subtitle_path, output_video_path):
|
|
146 |
def text_to_video():
|
147 |
duration_time = get_audio_duration("./audio")
|
148 |
create_srt_from_time_and_text(duration_time, './text', './output/subtitle.srt')
|
149 |
-
concatenate_audio_files("./audio","./output/final_audio.
|
150 |
-
create_video_from_images("./image","./output/final_audio.
|
151 |
add_subtitles_to_video("./output/output.mp4", "./output/subtitle.srt", "./output/final_output.mp4")
|
152 |
if __name__ == "__main__":
|
153 |
text_to_video()
|
|
|
15 |
hours, mins = divmod(mins, 60)
|
16 |
return f"{int(hours):02}:{int(mins):02}:{int(sec):02},{int((sec % 1) * 1000):03}"
|
17 |
def get_audio_duration(audio_path):
|
18 |
+
# Lọc các file có đuôi .mp3
|
19 |
audio_paths = os.listdir(audio_path)
|
20 |
+
audio_list = [file for file in audio_paths if file.endswith(".mp3")]
|
21 |
|
22 |
# Khởi tạo danh sách audio duration
|
23 |
duration_list = []
|
|
|
56 |
with open(output_srt, 'w', encoding='utf-8') as f:
|
57 |
f.write(subtitle)
|
58 |
def concatenate_audio_files(audio_folder, output_audio_path):
|
59 |
+
# Lọc tất cả các file âm thanh .mp3 trong thư mục
|
60 |
audio_clips = []
|
61 |
|
62 |
for file in sorted(os.listdir(audio_folder)):
|
63 |
+
if file.endswith('.mp3'):
|
64 |
audio_path = os.path.join(audio_folder, file)
|
65 |
audio_clip = AudioFileClip(audio_path)
|
66 |
audio_clips.append(audio_clip)
|
|
|
69 |
final_audio = concatenate_audioclips(audio_clips)
|
70 |
|
71 |
# Lưu kết quả vào file output
|
72 |
+
final_audio.write_audiofile(output_audio_path, codec = 'libmp3lame')
|
73 |
|
74 |
print(f"File audio đã được lưu tại: {output_audio_path}")
|
75 |
def create_video_from_images(image_folder, audio_path, output_video_path):
|
|
|
96 |
final_video .audio = audio
|
97 |
|
98 |
# Xuất video
|
99 |
+
final_video.write_videofile(codec="libx264", audio_codec="aac", fps=30)
|
100 |
|
101 |
print(f"Video đã được lưu tại: {output_video_path}")
|
102 |
def wrap_text(text, max_width):
|
|
|
146 |
def text_to_video():
|
147 |
duration_time = get_audio_duration("./audio")
|
148 |
create_srt_from_time_and_text(duration_time, './text', './output/subtitle.srt')
|
149 |
+
concatenate_audio_files("./audio","./output/final_audio.mp3")
|
150 |
+
create_video_from_images("./image","./output/final_audio.mp3","./output/output.mp4")
|
151 |
add_subtitles_to_video("./output/output.mp4", "./output/subtitle.srt", "./output/final_output.mp4")
|
152 |
if __name__ == "__main__":
|
153 |
text_to_video()
|