更新版本号

This commit is contained in:
雅诺狐
2025-08-25 17:46:30 +08:00
parent 956c16df88
commit 431fc0433b
2 changed files with 9 additions and 5 deletions

View File

@@ -55,6 +55,7 @@ def _extract_frames_worker(video_path: str,
# 新模式:按时间间隔抽帧 # 新模式:按时间间隔抽帧
time_interval = frame_interval_seconds time_interval = frame_interval_seconds
next_frame_time = 0.0 next_frame_time = 0.0
extracted_count = 0 # 初始化提取帧计数器
while cap.isOpened(): while cap.isOpened():
ret, frame = cap.read() ret, frame = cap.read()
@@ -69,20 +70,21 @@ def _extract_frames_worker(video_path: str,
pil_image = Image.fromarray(frame_rgb) pil_image = Image.fromarray(frame_rgb)
# 调整图像大小 # 调整图像大小
if max(pil_image.size) > self.max_image_size: if max(pil_image.size) > max_image_size:
ratio = self.max_image_size / max(pil_image.size) ratio = max_image_size / max(pil_image.size)
new_size = tuple(int(dim * ratio) for dim in pil_image.size) new_size = tuple(int(dim * ratio) for dim in pil_image.size)
pil_image = pil_image.resize(new_size, Image.Resampling.LANCZOS) pil_image = pil_image.resize(new_size, Image.Resampling.LANCZOS)
# 转换为base64 # 转换为base64
buffer = io.BytesIO() buffer = io.BytesIO()
pil_image.save(buffer, format='JPEG', quality=self.frame_quality) pil_image.save(buffer, format='JPEG', quality=frame_quality)
frame_base64 = base64.b64encode(buffer.getvalue()).decode('utf-8') frame_base64 = base64.b64encode(buffer.getvalue()).decode('utf-8')
frames.append((frame_base64, current_time)) frames.append((frame_base64, current_time))
extracted_count += 1 extracted_count += 1
logger.debug(f"提取第{extracted_count}帧 (时间: {current_time:.2f}s)") # 注意这里不能使用logger因为在线程池中
# logger.debug(f"提取第{extracted_count}帧 (时间: {current_time:.2f}s)")
next_frame_time += time_interval next_frame_time += time_interval
else: else:

View File

@@ -1,5 +1,5 @@
[inner] [inner]
version = "6.4.4" version = "6.4.6"
#----以下是给开发人员阅读的,如果你只是部署了麦麦,不需要阅读---- #----以下是给开发人员阅读的,如果你只是部署了麦麦,不需要阅读----
#如果你想要修改配置文件请递增version的值 #如果你想要修改配置文件请递增version的值
@@ -387,6 +387,8 @@ max_frames = 16 # 最大分析帧数(仅在 mode = "fixed_number" 时生效)
frame_quality = 80 # 帧图像JPEG质量 (1-100) frame_quality = 80 # 帧图像JPEG质量 (1-100)
max_image_size = 800 # 单帧最大图像尺寸(像素) max_image_size = 800 # 单帧最大图像尺寸(像素)
enable_frame_timing = true # 是否在分析中包含帧的时间信息 enable_frame_timing = true # 是否在分析中包含帧的时间信息
use_multiprocessing = true # 是否使用线程池处理视频帧提取(推荐开启,可防止卡死)
max_workers = 2 # 最大线程数建议1-2个避免过度消耗资源
# 批量分析时使用的提示词 # 批量分析时使用的提示词
batch_analysis_prompt = """请分析这个视频的内容。这些图片是从视频中按时间顺序提取的关键帧。 batch_analysis_prompt = """请分析这个视频的内容。这些图片是从视频中按时间顺序提取的关键帧。