减少队列中帧的数量,降低延迟

This commit is contained in:
zqc
2026-02-03 13:49:12 +08:00
parent f04a8c0773
commit ec97c1fc20
2 changed files with 4 additions and 3 deletions

View File

@@ -725,7 +725,7 @@ class FrameProcessorWorker(threading.Thread):
# 抽帧控制 # 抽帧控制
if ts - self.last_ts.get(cam_id, 0) < target_interval: if ts - self.last_ts.get(cam_id, 0) < target_interval:
self.raw_queue.task_done() # self.raw_queue.task_done()
continue continue
self.last_ts[cam_id] = ts self.last_ts[cam_id] = ts
@@ -793,9 +793,10 @@ class FrameProcessorWorker(threading.Thread):
# logger.info(f"[PERF] Camera {cam_id} - Total: {total_time:.1f}ms | " # logger.info(f"[PERF] Camera {cam_id} - Total: {total_time:.1f}ms | "
# f"Detect: {detect_time:.1f}ms | " # f"Detect: {detect_time:.1f}ms | "
# f"Encode: {encode_time:.1f}ms | ") # f"Encode: {encode_time:.1f}ms | ")
self.raw_queue.task_done()
except Exception as e: except Exception as e:
logger.error(f"[ERROR] Frame processing failed for camera {cam_id if 'cam_id' in locals() else 'unknown'}: {e}") logger.error(f"[ERROR] Frame processing failed for camera {cam_id if 'cam_id' in locals() else 'unknown'}: {e}")
logger.exception("Exception details:") # 打印完整的堆栈跟踪 logger.exception("Exception details:") # 打印完整的堆栈跟踪
# 继续处理下一帧,不要退出循环 # 继续处理下一帧,不要退出循环
finally:
self.raw_queue.task_done()

View File

@@ -188,7 +188,7 @@ class RTSPService:
for c in cfg.get("cameras", [])] for c in cfg.get("cameras", [])]
self.stop_event = threading.Event() self.stop_event = threading.Event()
self.raw_queue = queue.Queue(maxsize=500) self.raw_queue = queue.Queue(maxsize=2)
self.ws_queue = queue.Queue(maxsize=1000) self.ws_queue = queue.Queue(maxsize=1000)
self.capture_workers = [] self.capture_workers = []