Merge branch 'dev-v15' of http://121.37.111.42:3000/ThbTech/BodyBalanceEvaluation into dev-v15
This commit is contained in:
commit
73191de5b8
@ -19,7 +19,7 @@ path = D:/BodyCheck/file/
|
|||||||
|
|
||||||
[CAMERA1]
|
[CAMERA1]
|
||||||
enabled = True
|
enabled = True
|
||||||
device_index = 2
|
device_index = 0
|
||||||
width = 1280
|
width = 1280
|
||||||
height = 720
|
height = 720
|
||||||
fps = 30
|
fps = 30
|
||||||
@ -29,7 +29,7 @@ backend = directshow
|
|||||||
|
|
||||||
[CAMERA2]
|
[CAMERA2]
|
||||||
enabled = True
|
enabled = True
|
||||||
device_index = 0
|
device_index = 2
|
||||||
width = 1280
|
width = 1280
|
||||||
height = 720
|
height = 720
|
||||||
fps = 30
|
fps = 30
|
||||||
|
|||||||
@ -74,15 +74,19 @@ class RecordingManager:
|
|||||||
self.feet_recording_thread = None
|
self.feet_recording_thread = None
|
||||||
self.screen_recording_thread = None
|
self.screen_recording_thread = None
|
||||||
self.femtobolt_recording_thread = None
|
self.femtobolt_recording_thread = None
|
||||||
|
self.camera1_recording_thread = None
|
||||||
|
self.camera2_recording_thread = None
|
||||||
|
|
||||||
# 独立的录制参数配置
|
# 独立的录制参数配置
|
||||||
self.screen_fps = 25 # 屏幕录制帧率
|
self.screen_fps = 25 # 屏幕录制帧率
|
||||||
self.camera_fps = 20 # 相机录制帧率
|
self.camera1_fps = 20 # 相机1录制帧率
|
||||||
|
self.camera2_fps = 20 # 相机2录制帧率
|
||||||
self.femtobolt_fps = 15 # FemtoBolt录制帧率
|
self.femtobolt_fps = 15 # FemtoBolt录制帧率
|
||||||
|
|
||||||
# 录制区域
|
# 录制区域
|
||||||
self.screen_region = None
|
self.screen_region = None
|
||||||
self.camera_region = None
|
self.camera1_region = None
|
||||||
|
self.camera2_region = None
|
||||||
self.femtobolt_region = None
|
self.femtobolt_region = None
|
||||||
|
|
||||||
# 屏幕尺寸
|
# 屏幕尺寸
|
||||||
@ -98,7 +102,8 @@ class RecordingManager:
|
|||||||
|
|
||||||
# 独立的帧率控制参数
|
# 独立的帧率控制参数
|
||||||
self.screen_current_fps = self.screen_fps
|
self.screen_current_fps = self.screen_fps
|
||||||
self.camera_current_fps = self.camera_fps
|
self.camera1_current_fps = self.camera1_fps
|
||||||
|
self.camera2_current_fps = self.camera2_fps
|
||||||
self.femtobolt_current_fps = self.femtobolt_fps
|
self.femtobolt_current_fps = self.femtobolt_fps
|
||||||
|
|
||||||
# 区域大小阈值配置 - 根据实际录制场景优化
|
# 区域大小阈值配置 - 根据实际录制场景优化
|
||||||
@ -159,11 +164,12 @@ class RecordingManager:
|
|||||||
根据录制区域大小设置自适应帧率
|
根据录制区域大小设置自适应帧率
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
recording_type: 录制类型 ('screen', 'camera', 'femtobolt')
|
recording_type: 录制类型 ('screen', 'camera1', 'camera2', 'femtobolt')
|
||||||
region: 录制区域 (x, y, width, height)
|
region: 录制区域 (x, y, width, height)
|
||||||
"""
|
"""
|
||||||
size_category = self._calculate_region_size_category(region)
|
size_category = self._calculate_region_size_category(region)
|
||||||
target_fps = self.fps_config[size_category][recording_type]
|
lookup_key = 'camera' if recording_type in ['camera1', 'camera2'] else recording_type
|
||||||
|
target_fps = self.fps_config[size_category][lookup_key]
|
||||||
|
|
||||||
# 计算区域面积用于日志
|
# 计算区域面积用于日志
|
||||||
_, _, width, height = region
|
_, _, width, height = region
|
||||||
@ -171,8 +177,10 @@ class RecordingManager:
|
|||||||
|
|
||||||
if recording_type == 'screen':
|
if recording_type == 'screen':
|
||||||
self.screen_current_fps = target_fps
|
self.screen_current_fps = target_fps
|
||||||
elif recording_type == 'camera':
|
elif recording_type == 'camera1':
|
||||||
self.camera_current_fps = target_fps
|
self.camera1_current_fps = target_fps
|
||||||
|
elif recording_type == 'camera2':
|
||||||
|
self.camera2_current_fps = target_fps
|
||||||
elif recording_type == 'femtobolt':
|
elif recording_type == 'femtobolt':
|
||||||
self.femtobolt_current_fps = target_fps
|
self.femtobolt_current_fps = target_fps
|
||||||
|
|
||||||
@ -253,7 +261,7 @@ class RecordingManager:
|
|||||||
camera1_location: 相机1录制区域 [x, y, w, h]
|
camera1_location: 相机1录制区域 [x, y, w, h]
|
||||||
camera2_location: 相机2录制区域 [x, y, w, h]
|
camera2_location: 相机2录制区域 [x, y, w, h]
|
||||||
femtobolt_location: FemtoBolt录制区域 [x, y, w, h]
|
femtobolt_location: FemtoBolt录制区域 [x, y, w, h]
|
||||||
recording_types: 录制类型列表 ['screen', 'camera1', 'camera2', 'feet', 'femtobolt'],默认全部录制
|
recording_types: 录制类型列表 ['screen', 'camera', 'feet', 'femtobolt'],默认全部录制
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Dict: 录制启动状态和信息
|
Dict: 录制启动状态和信息
|
||||||
@ -280,7 +288,7 @@ class RecordingManager:
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
# 设置默认录制类型
|
# 设置默认录制类型
|
||||||
recording_types = ['screen', 'camera1' ,'camera2']
|
recording_types = ['screen', 'camera1',"camera2"]
|
||||||
|
|
||||||
# 验证录制区域参数(仅对启用的录制类型进行验证)
|
# 验证录制区域参数(仅对启用的录制类型进行验证)
|
||||||
if 'screen' in recording_types:
|
if 'screen' in recording_types:
|
||||||
@ -576,11 +584,11 @@ class RecordingManager:
|
|||||||
expected_frames = int(actual_recording_duration * self.screen_current_fps)
|
expected_frames = int(actual_recording_duration * self.screen_current_fps)
|
||||||
self.logger.info(f' 屏幕录制预期帧数: {expected_frames}帧 (帧率{self.screen_current_fps}fps)')
|
self.logger.info(f' 屏幕录制预期帧数: {expected_frames}帧 (帧率{self.screen_current_fps}fps)')
|
||||||
elif thread_name == 'camera1':
|
elif thread_name == 'camera1':
|
||||||
expected_frames = int(actual_recording_duration * self.camera_current_fps)
|
expected_frames = int(actual_recording_duration * self.camera1_current_fps)
|
||||||
self.logger.info(f' 相机1录制预期帧数: {expected_frames}帧 (帧率{self.camera_current_fps}fps)')
|
self.logger.info(f' 相机1录制预期帧数: {expected_frames}帧 (帧率{self.camera1_current_fps}fps)')
|
||||||
elif thread_name == 'camera2':
|
elif thread_name == 'camera2':
|
||||||
expected_frames = int(actual_recording_duration * self.camera_current_fps)
|
expected_frames = int(actual_recording_duration * self.camera2_current_fps)
|
||||||
self.logger.info(f' 相机2录制预期帧数: {expected_frames}帧 (帧率{self.camera_current_fps}fps)')
|
self.logger.info(f' 相机2录制预期帧数: {expected_frames}帧 (帧率{self.camera2_current_fps}fps)')
|
||||||
elif thread_name == 'femtobolt':
|
elif thread_name == 'femtobolt':
|
||||||
expected_frames = int(actual_recording_duration * self.femtobolt_current_fps)
|
expected_frames = int(actual_recording_duration * self.femtobolt_current_fps)
|
||||||
self.logger.info(f' FemtoBolt录制预期帧数: {expected_frames}帧 (帧率{self.femtobolt_current_fps}fps)')
|
self.logger.info(f' FemtoBolt录制预期帧数: {expected_frames}帧 (帧率{self.femtobolt_current_fps}fps)')
|
||||||
@ -808,12 +816,16 @@ class RecordingManager:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
self.screen_region = screen_region
|
self.screen_region = screen_region
|
||||||
self.camera_region = camera_region
|
# 兼容旧参数:如果传入单一camera_region,则同时设置为camera1与camera2区域
|
||||||
|
if camera_region is not None:
|
||||||
|
self.camera1_region = camera_region
|
||||||
|
self.camera2_region = camera_region
|
||||||
self.femtobolt_region = femtobolt_region
|
self.femtobolt_region = femtobolt_region
|
||||||
|
|
||||||
self.logger.info(f'录制区域已设置:')
|
self.logger.info(f'录制区域已设置:')
|
||||||
self.logger.info(f' 屏幕区域: {screen_region}')
|
self.logger.info(f' 屏幕区域: {screen_region}')
|
||||||
self.logger.info(f' 相机区域: {camera_region}')
|
self.logger.info(f' 相机1区域: {self.camera1_region}')
|
||||||
|
self.logger.info(f' 相机2区域: {self.camera2_region}')
|
||||||
self.logger.info(f' FemtoBolt区域: {femtobolt_region}')
|
self.logger.info(f' FemtoBolt区域: {femtobolt_region}')
|
||||||
|
|
||||||
return True
|
return True
|
||||||
@ -828,6 +840,10 @@ class RecordingManager:
|
|||||||
'screen_size': self.screen_size,
|
'screen_size': self.screen_size,
|
||||||
'screen_region': self.screen_region,
|
'screen_region': self.screen_region,
|
||||||
'screen_fps': self.screen_fps,
|
'screen_fps': self.screen_fps,
|
||||||
|
'camera1_region': self.camera1_region,
|
||||||
|
'camera2_region': self.camera2_region,
|
||||||
|
'camera1_fps': self.camera1_fps,
|
||||||
|
'camera2_fps': self.camera2_fps,
|
||||||
'feet_writer_active': self.feet_video_writer is not None and self.feet_video_writer.isOpened() if self.feet_video_writer else False,
|
'feet_writer_active': self.feet_video_writer is not None and self.feet_video_writer.isOpened() if self.feet_video_writer else False,
|
||||||
'screen_writer_active': self.screen_video_writer is not None and self.screen_video_writer.isOpened() if self.screen_video_writer else False
|
'screen_writer_active': self.screen_video_writer is not None and self.screen_video_writer.isOpened() if self.screen_video_writer else False
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user