import sys from time import sleep import signal import configSer import tcp_Ser import upload.DataReporter import videoDetection import videoPush tcp_service = None video_processor = None def signal_handler(sig, frame): global tcp_service,video_processor print(f"收到退出信号 sig={sig},程序准备退出") tcp_service.stop() tcp_service.join() video_processor.stop() videoPush.stop() print(f"===释放完毕,退出===") sys.exit(0) signal.signal(signal.SIGINT, signal_handler) # 捕获 Ctrl+C 信号 if __name__ == '__main__': if __debug__: print("Debug 模式") else: print("release 模式") config_path = "./config.json" # 读取配置文件 config_obj= configSer.ConfigOperate(config_path) json_str = config_obj.config_info.to_json(indent=4) print(f"当前配置:{json_str}") tcp_service = tcp_Ser.TcpSer("0.0.0.0", config_obj.config_info.server.port) tcp_service.start() reporter = upload.DataReporter.DataReporter(data_fps=config_obj.config_info.fps.data,video_fps=config_obj.config_info.fps.video) reporter.register_handler(tcp_service.broadcast_message) reporter.start() # 启动video videoDetection.configObj=config_obj video_processor = videoDetection.VideoProcessor(reporter) # 添加订阅者processor tcp_service.add_subscribe(video_processor) # 推流 videoPush.video_server_run() # 启动 video_processor.video_mode(config_obj.config_info.capture) print("==over==")