From 7efd3ccb85472c3871edc38af562bf86bb87f5a8 Mon Sep 17 00:00:00 2001 From: zqc <835569504@qq.com> Date: Wed, 4 Feb 2026 16:55:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E6=B3=A8=E4=B8=80=E4=BA=9B=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=89=93=E5=8D=B0=EF=BC=8C=E8=AF=BB=E5=8F=96ts?= =?UTF-8?q?=E4=B8=8Eframe=E5=A4=84=E7=90=86=E5=90=88=E5=B9=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=89=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hls_service_ws_kadian.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/hls_service_ws_kadian.py b/hls_service_ws_kadian.py index 55e4bb3..4e7ec54 100644 --- a/hls_service_ws_kadian.py +++ b/hls_service_ws_kadian.py @@ -170,13 +170,13 @@ class TSReaderWorker(threading.Thread): if next_segment is not None: # 读取下一个分片 - # logger.info(f"[INFO] Starting to read TS segment: {next_segment}") - # start_time = time.time() + logger.info(f"[INFO] Starting to read TS segment: {next_segment}") + start_time = time.time() current_frames = self.read_ts_frames(next_segment) - # elapsed_time = (time.time() - start_time) * 1000 # 转换为毫秒 - # logger.info(f"[INFO] Finished reading TS segment, took {elapsed_time:.1f}ms") + elapsed_time = (time.time() - start_time) * 1000 # 转换为毫秒 + logger.info(f"[INFO] Finished reading TS segment, took {elapsed_time:.1f}ms") if current_frames: self.current_segment_num += 1 @@ -253,12 +253,6 @@ class HLSFrameProcessor(threading.Thread): self.base_pts = frame_data['pts_ms'] logger.info("[INFO] Frame processor initialized time base") - # # 打印距离上次处理过去的时间 - # current_time = time.time() - # if self.last_process_time is not None: - # time_since_last = (current_time - self.last_process_time) * 1000 # 转换为毫秒 - # logger.info(f"[INFO] Time since last frame: {time_since_last:.1f}ms") - # self.last_process_time = current_time # 计算预期的播放时间 expected_play_time = self.start_time + (frame_data['pts_ms'] - self.base_pts) / 1000.0 @@ -266,6 +260,13 @@ class HLSFrameProcessor(threading.Thread): # 计算时间差 time_diff = current_time - expected_play_time + + # 打印距离上次处理过去的时间 + current_time = time.time() + if self.last_process_time is not None: + time_since_last = (current_time - self.last_process_time) * 1000 # 转换为毫秒 + logger.info(f"[INFO] Time since last frame: {time_since_last:.1f}ms, pts: {frame_data['pts_ms']} ms") + self.last_process_time = current_time # 时间同步策略 if time_diff > 0.06: # 超过60ms,播放落后 (3帧)