Spaces:
Running
Running
Update src/text_to_video.py
Browse files- src/text_to_video.py +22 -5
src/text_to_video.py
CHANGED
@@ -2,11 +2,10 @@ from moviepy.video.io.VideoFileClip import VideoFileClip, AudioFileClip
|
|
2 |
from moviepy.video.VideoClip import TextClip, ImageClip
|
3 |
from moviepy.video.compositing.CompositeVideoClip import concatenate_videoclips, CompositeVideoClip
|
4 |
from moviepy.audio.AudioClip import concatenate_audioclips
|
5 |
-
from moviepy.video.tools.subtitles import SubtitlesClip
|
6 |
-
from moviepy.video.VideoClip import ColorClip
|
7 |
import os
|
8 |
from itertools import accumulate
|
9 |
import pysrt
|
|
|
10 |
|
11 |
def format_time(seconds):
|
12 |
"""Chuyển đổi thời gian (giây) thành định dạng SRT hh:mm:ss,ms"""
|
@@ -144,9 +143,27 @@ def add_subtitles_to_video(video_path, subtitle_path, output_video_path):
|
|
144 |
final_video.write_videofile(output_video_path, fps=video.fps, codec='libx264', threads=4)
|
145 |
|
146 |
print(f"Video với phụ đề đã được lưu tại: {output_video_path}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
def text_to_video():
|
148 |
duration_time = get_audio_duration("./")
|
149 |
create_srt_from_time_and_text(duration_time, './', 'subtitle.srt')
|
150 |
-
concatenate_audio_files("./","final_audio.mp3")
|
151 |
-
create_video_from_images("./","final_audio.mp3","output.mp4")
|
152 |
-
add_subtitles_to_video("output.mp4", "subtitle.srt", "final_output.mp4")
|
|
|
|
2 |
from moviepy.video.VideoClip import TextClip, ImageClip
|
3 |
from moviepy.video.compositing.CompositeVideoClip import concatenate_videoclips, CompositeVideoClip
|
4 |
from moviepy.audio.AudioClip import concatenate_audioclips
|
|
|
|
|
5 |
import os
|
6 |
from itertools import accumulate
|
7 |
import pysrt
|
8 |
+
import subprocess
|
9 |
|
10 |
def format_time(seconds):
|
11 |
"""Chuyển đổi thời gian (giây) thành định dạng SRT hh:mm:ss,ms"""
|
|
|
143 |
final_video.write_videofile(output_video_path, fps=video.fps, codec='libx264', threads=4)
|
144 |
|
145 |
print(f"Video với phụ đề đã được lưu tại: {output_video_path}")
|
146 |
+
def convert_audio_format(video_input, video_output):
|
147 |
+
"""Chuyển đổi định dạng âm thanh của video sang AAC."""
|
148 |
+
if not os.path.exists(video_input):
|
149 |
+
raise FileNotFoundError(f"File '{video_input}' không tồn tại!")
|
150 |
+
|
151 |
+
command = [
|
152 |
+
"ffmpeg", "-i", video_input,
|
153 |
+
"-c:v", "copy", "-c:a", "aac", "-b:a", "192k",
|
154 |
+
"-y", # Ghi đè nếu file output đã tồn tại
|
155 |
+
video_output
|
156 |
+
]
|
157 |
+
|
158 |
+
try:
|
159 |
+
subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
160 |
+
print(f"✅ Chuyển đổi thành công: {video_output}")
|
161 |
+
except subprocess.CalledProcessError as e:
|
162 |
+
print(f"❌ Lỗi khi chuyển đổi video: {e.stderr.decode()}")
|
163 |
def text_to_video():
|
164 |
duration_time = get_audio_duration("./")
|
165 |
create_srt_from_time_and_text(duration_time, './', 'subtitle.srt')
|
166 |
+
concatenate_audio_files("./","./final_audio.mp3")
|
167 |
+
create_video_from_images("./","./final_audio.mp3","output.mp4")
|
168 |
+
add_subtitles_to_video("./output.mp4", "./subtitle.srt", "./final_output.mp4")
|
169 |
+
convert_audio_format("./final_output.mp4","./final_fixed_ouput.mp4")
|