MCPcopy Create free account
hub / github.com/Holasyb918/HeyGem-Linux-Python-Hack / VideoProcessor

Class VideoProcessor

app.py:151–208  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

149
150
151class VideoProcessor:
152 def __init__(self):
153 self.task = service.trans_dh_service.TransDhTask()
154 self.basedir = GlobalConfig.instance().result_dir
155 self.is_initialized = False
156 self._initialize_service()
157 print("VideoProcessor init done")
158
159 def _initialize_service(self):
160 logger.info("开始初始化 trans_dh_service...")
161 try:
162 time.sleep(5)
163 logger.info("trans_dh_service 初始化完成。")
164 self.is_initialized = True
165 except Exception as e:
166 logger.error(f"初始化 trans_dh_service 失败: {e}")
167
168 def process_video(
169 self, audio_file, video_file, watermark=False, digital_auth=False
170 ):
171 while not self.is_initialized:
172 logger.info("服务尚未完成初始化,等待 1 秒...")
173 time.sleep(1)
174 work_id = str(uuid.uuid1())
175 code = work_id
176 temp_dir = os.path.join(GlobalConfig.instance().temp_dir, work_id)
177 result_dir = GlobalConfig.instance().result_dir
178 video_writer_thread = None
179 final_result = None
180
181 try:
182 cap = cv2.VideoCapture(video_file)
183 width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
184 height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
185 fps = cap.get(cv2.CAP_PROP_FPS)
186 cap.release()
187
188 audio_path = audio_file
189 video_path = video_file
190
191 self.task.task_dic[code] = ""
192 self.task.work(audio_path, video_path, code, 0, 0, 0, 0)
193
194 result_path = self.task.task_dic[code][2]
195 final_result_dir = os.path.join("result", code)
196 os.makedirs(final_result_dir, exist_ok=True)
197 os.system(f"mv {result_path} {final_result_dir}")
198 os.system(
199 f"rm -rf {os.path.join(os.path.dirname(result_path), code + '*.*')}"
200 )
201 result_path = os.path.realpath(
202 os.path.join(final_result_dir, os.path.basename(result_path))
203 )
204 return result_path
205
206 except Exception as e:
207 logger.error(f"处理视频时发生错误: {e}")
208 raise gr.Error(str(e))

Callers 1

app.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected