Browse Source

视频拼接优化

zhangyong 1 year ago
parent
commit
4ea34bf490
1 changed files with 6 additions and 7 deletions
  1. 6 7
      video_stitching/video_stitching.py

+ 6 - 7
video_stitching/video_stitching.py

@@ -183,19 +183,17 @@ class VideoStitching():
                                       color=(255, 255, 0)).set_duration(duration_limit)
         final_clip = editor.CompositeVideoClip([final_clip, color_clip.set_position(("center", final_height - 70))])
         if srt != None:
-            Common.logger().info(f"处理SRT字幕文件")
+            Common.logger().info(f"处理字幕文件")
             # 使用正则表达式提取时间码和字幕内容
             pattern = r"(\d{2}:\d{2}:\d{2},\d{3}) --> (\d{2}:\d{2}:\d{2},\d{3})\n([\s\S]+?(?=\n\d|$))"
             matches = re.findall(pattern, srt)
             Common.logger().info(f"字幕{matches}")
-            # 从SRT字幕文件中获取字幕
+            # 获取字幕
             subtitle_clips = []
             for match in matches:
-                start = match[0]
-                start = cls.srt_to_seconds(start)
-                end = match[1]
-                end = cls.srt_to_seconds(end)
+                start = cls.srt_to_seconds(match[0])
                 start = editor.cvsecs(start)
+                end = cls.srt_to_seconds(match[1])
                 end = editor.cvsecs(end)
                 text = match[2].strip()
                 text = cls.split_text(text, 10)
@@ -211,6 +209,7 @@ class VideoStitching():
             # 将字幕添加到视频上
             video_with_subtitles = editor.CompositeVideoClip([final_clip] + subtitle_clips)
         else:
+            Common.logger().info(f"添加固定字幕")
             text_clip = (
                 editor.TextClip("分享、转发给群友", font="/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc",
                                 fontsize=30, color="black").
@@ -221,7 +220,7 @@ class VideoStitching():
             # 把 `文本剪贴板` 贴在视频上
             video_with_subtitles = editor.CompositeVideoClip([final_clip, text_clip])
         # 生成视频
-        video_with_subtitles.write_videofile(output_path, codec='libx264', fps=24)
+        video_with_subtitles.write_videofile(output_path,fps=24)
         if os.path.isfile(output_path):
             Common.logger().info("视频生成成功!生成路径为:", output_path)
             return included_videos, video_with_subtitles