Prechádzať zdrojové kódy

无srt视频生成修复

zhangyong 11 mesiacov pred
rodič
commit
3d29249373
1 zmenil súbory, kde vykonal 20 pridanie a 2 odobranie
  1. 20 2
      video_agc/agc_video_method.py

+ 20 - 2
video_agc/agc_video_method.py

@@ -463,6 +463,15 @@ class AgcVidoe():
         return s_path, v_path, video_path_url, v_oss_path
 
 
+    # 视频秒数转换
+    @classmethod
+    def seconds_to_srt_time(cls, seconds):
+        hours = int(seconds // 3600)
+        minutes = int((seconds % 3600) // 60)
+        seconds = seconds % 60
+        milliseconds = int((seconds - int(seconds)) * 1000)
+        return f"{hours:02d}:{minutes:02d}:{int(seconds):02d},{milliseconds:03d}"
+
 
     # 视频拼接
     @classmethod
@@ -476,12 +485,17 @@ class AgcVidoe():
             return ""
         print(f"{mark}的{platform}:开始拼接视频喽~~~")
         Common.logger("video").info(f"{mark}的{platform}:开始拼接视频喽~~~")
+
         if os.path.exists(s_path):
             # subtitle_cmd = f"subtitles={s_path}:force_style='Fontsize=11,Fontname=Hiragino Sans GB,Outline=0,PrimaryColour=&H000000,SecondaryColour=&H000000'"
             subtitle_cmd = f"subtitles={s_path}:force_style='Fontsize=12,Fontname=wqy-zenhei,Bold=1,Outline=0,PrimaryColour=&H000000,SecondaryColour=&H000000'"
         else:
+            start_time = cls.seconds_to_srt_time(0)
+            end_time = cls.seconds_to_srt_time(audio_duration)
+            with open(s_path, 'w') as f:
+                f.write(f"1\n{start_time} --> {end_time}\n分享、转发给群友\n")
             # subtitle_cmd = "drawtext=text='分享、转发给群友':fontsize=28:fontcolor=black:x=(w-text_w)/2:y=h-text_h-15"
-            subtitle_cmd =  "drawtext=text='分享、转发给群友':x=(w-text_w)/2:y=h-text_h-15:fontsize=28:fontcolor=black:fontfile=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc"
+            subtitle_cmd = f"subtitles={s_path}:force_style='Fontsize=12,Fontname=wqy-zenhei,Bold=1,Outline=0,PrimaryColour=&H000000,SecondaryColour=&H000000'"
         # 背景色参数
         background_cmd = "drawbox=y=ih-65:color=yellow@1.0:width=iw:height=0:t=fill"
         if platform == "koubo" or platform == "zhannei":
@@ -949,8 +963,12 @@ class AgcVidoe():
             # subtitle_cmd = f"subtitles={s_path}:force_style='Fontsize=11,Fontname=Hiragino Sans GB,Outline=0,PrimaryColour=&H000000,SecondaryColour=&H000000'"
             subtitle_cmd = f"subtitles={s_path}:force_style='Fontsize=12,Fontname=wqy-zenhei,Bold=1,Outline=0,PrimaryColour=&H000000,SecondaryColour=&H000000'"
         else:
+            start_time = cls.seconds_to_srt_time(0)
+            end_time = cls.seconds_to_srt_time(audio_duration)
+            with open(s_path, 'w') as f:
+                f.write(f"1\n{start_time} --> {end_time}\n分享、转发给群友\n")
             # subtitle_cmd = "drawtext=text='分享、转发给群友':fontsize=28:fontcolor=black:x=(w-text_w)/2:y=h-text_h-15"
-            subtitle_cmd = "drawtext=text='分享、转发给群友':x=(w-text_w)/2:y=h-text_h-15:fontsize=28:fontcolor=black:fontfile=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc"
+            subtitle_cmd = f"subtitles={s_path}:force_style='Fontsize=12,Fontname=wqy-zenhei,Bold=1,Outline=0,PrimaryColour=&H000000,SecondaryColour=&H000000'"
         # 背景色参数
         background_cmd = "drawbox=y=ih-65:color=yellow@1.0:width=iw:height=0:t=fill"
         # 多线程数