33import argparse
44import os
55import subprocess
6- from src .config import GPU_EXIST , SRC_DIR , MODEL_TYPE , AUTO_SLICE , SLICE_DURATION , MIN_VIDEO_SIZE
6+ from src .config import GPU_EXIST , SRC_DIR , MODEL_TYPE , AUTO_SLICE , SLICE_DURATION , MIN_VIDEO_SIZE , SLICE_NUM , SLICE_OVERLAP , SLICE_STEP
77from src .danmaku .generate_danmakus import get_resolution , process_danmakus
88from src .subtitle .generate_subtitles import generate_subtitles
99from src .burn .render_command import render_command
10- from src .autoslice .slice_video import slice_video , inject_metadata , zhipu_glm_4v_plus_generate_title
11- from src .autoslice .calculate_density import extract_dialogues , calculate_density , format_time
10+ from autoslice import slice_video_by_danmaku
11+ from src .autoslice .inject_metadata import inject_metadata
12+ from src .autoslice .zhipu_sdk import zhipu_glm_4v_plus_generate_title
1213from src .upload .extract_video_info import get_video_info
1314from src .log .logger import scan_log
1415
@@ -61,16 +62,18 @@ def render_video(video_path):
6162 if AUTO_SLICE :
6263 if check_file_size (format_video_path ) > MIN_VIDEO_SIZE :
6364 title , artist , date = get_video_info (format_video_path )
64- slice_video_path = format_video_path [:- 4 ] + '_slice.mp4'
65- dialogues = extract_dialogues (ass_path )
66- max_start_time , max_density = calculate_density (dialogues )
67- formatted_time = format_time (max_start_time )
68- scan_log .info (f"The 30-second window with the highest density starts at { formatted_time } seconds with { max_density } danmakus." )
69- slice_video (format_video_path , max_start_time , slice_video_path )
70- glm_title = zhipu_glm_4v_plus_generate_title (slice_video_path , artist )
71- slice_video_flv_path = slice_video_path [:- 4 ] + '.flv'
72- inject_metadata (slice_video_path , glm_title , slice_video_flv_path )
73- os .remove (slice_video_path )
65+ slices_path = slice_video_by_danmaku (ass_path , format_video_path , SLICE_DURATION , SLICE_NUM , SLICE_OVERLAP , SLICE_STEP )
66+ for slice_path in slices_path :
67+ try :
68+ glm_title = zhipu_glm_4v_plus_generate_title (slice_path , artist )
69+ slice_video_flv_path = slice_path [:- 4 ] + '.flv'
70+ inject_metadata (slice_path , glm_title , slice_video_flv_path )
71+ os .remove (slice_path )
72+ with open (f"{ SRC_DIR } /upload/uploadVideoQueue.txt" , "a" ) as file :
73+ scan_log .info (f"Complete { slice_video_flv_path } and wait for uploading!" )
74+ file .write (f"{ slice_video_flv_path } \n " )
75+ except Exception as e :
76+ scan_log .error (f"Error in { slice_path } : { e } " )
7477
7578 # Delete relative files
7679 for remove_path in [original_video_path , xml_path , ass_path , srt_path , jsonl_path ]:
@@ -82,9 +85,4 @@ def render_video(video_path):
8285 # os.rename(original_video_path, test_path)
8386
8487 with open (f"{ SRC_DIR } /upload/uploadVideoQueue.txt" , "a" ) as file :
85- file .write (f"{ format_video_path } \n " )
86- if AUTO_SLICE :
87- scan_log .info ("Complete slice video and wait for uploading!" )
88- slice_video_path = format_video_path [:- 4 ] + '_slice.mp4'
89- slice_video_flv_path = slice_video_path [:- 4 ] + '.flv'
90- file .write (f"{ slice_video_flv_path } \n " )
88+ file .write (f"{ format_video_path } \n " )
0 commit comments