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]
|
||||
enabled = True
|
||||
device_index = 2
|
||||
device_index = 0
|
||||
width = 1280
|
||||
height = 720
|
||||
fps = 30
|
||||
@ -29,7 +29,7 @@ backend = directshow
|
||||
|
||||
[CAMERA2]
|
||||
enabled = True
|
||||
device_index = 0
|
||||
device_index = 2
|
||||
width = 1280
|
||||
height = 720
|
||||
fps = 30
|
||||
|
||||
@ -74,15 +74,19 @@ class RecordingManager:
|
||||
self.feet_recording_thread = None
|
||||
self.screen_recording_thread = None
|
||||
self.femtobolt_recording_thread = None
|
||||
self.camera1_recording_thread = None
|
||||
self.camera2_recording_thread = None
|
||||
|
||||
# 独立的录制参数配置
|
||||
self.screen_fps = 25 # 屏幕录制帧率
|
||||
self.camera_fps = 20 # 相机录制帧率
|
||||
self.camera1_fps = 20 # 相机1录制帧率
|
||||
self.camera2_fps = 20 # 相机2录制帧率
|
||||
self.femtobolt_fps = 15 # FemtoBolt录制帧率
|
||||
|
||||
# 录制区域
|
||||
self.screen_region = None
|
||||
self.camera_region = None
|
||||
self.camera1_region = None
|
||||
self.camera2_region = None
|
||||
self.femtobolt_region = None
|
||||
|
||||
# 屏幕尺寸
|
||||
@ -98,7 +102,8 @@ class RecordingManager:
|
||||
|
||||
# 独立的帧率控制参数
|
||||
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
|
||||
|
||||
# 区域大小阈值配置 - 根据实际录制场景优化
|
||||
@ -159,11 +164,12 @@ class RecordingManager:
|
||||
根据录制区域大小设置自适应帧率
|
||||
|
||||
Args:
|
||||
recording_type: 录制类型 ('screen', 'camera', 'femtobolt')
|
||||
recording_type: 录制类型 ('screen', 'camera1', 'camera2', 'femtobolt')
|
||||
region: 录制区域 (x, y, width, height)
|
||||
"""
|
||||
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
|
||||
@ -171,8 +177,10 @@ class RecordingManager:
|
||||
|
||||
if recording_type == 'screen':
|
||||
self.screen_current_fps = target_fps
|
||||
elif recording_type == 'camera':
|
||||
self.camera_current_fps = target_fps
|
||||
elif recording_type == 'camera1':
|
||||
self.camera1_current_fps = target_fps
|
||||
elif recording_type == 'camera2':
|
||||
self.camera2_current_fps = target_fps
|
||||
elif recording_type == 'femtobolt':
|
||||
self.femtobolt_current_fps = target_fps
|
||||
|
||||
@ -253,7 +261,7 @@ class RecordingManager:
|
||||
camera1_location: 相机1录制区域 [x, y, w, h]
|
||||
camera2_location: 相机2录制区域 [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:
|
||||
Dict: 录制启动状态和信息
|
||||
@ -280,7 +288,7 @@ class RecordingManager:
|
||||
return result
|
||||
|
||||
# 设置默认录制类型
|
||||
recording_types = ['screen', 'camera1' ,'camera2']
|
||||
recording_types = ['screen', 'camera1',"camera2"]
|
||||
|
||||
# 验证录制区域参数(仅对启用的录制类型进行验证)
|
||||
if 'screen' in recording_types:
|
||||
@ -576,11 +584,11 @@ class RecordingManager:
|
||||
expected_frames = int(actual_recording_duration * self.screen_current_fps)
|
||||
self.logger.info(f' 屏幕录制预期帧数: {expected_frames}帧 (帧率{self.screen_current_fps}fps)')
|
||||
elif thread_name == 'camera1':
|
||||
expected_frames = int(actual_recording_duration * self.camera_current_fps)
|
||||
self.logger.info(f' 相机1录制预期帧数: {expected_frames}帧 (帧率{self.camera_current_fps}fps)')
|
||||
expected_frames = int(actual_recording_duration * self.camera1_current_fps)
|
||||
self.logger.info(f' 相机1录制预期帧数: {expected_frames}帧 (帧率{self.camera1_current_fps}fps)')
|
||||
elif thread_name == 'camera2':
|
||||
expected_frames = int(actual_recording_duration * self.camera_current_fps)
|
||||
self.logger.info(f' 相机2录制预期帧数: {expected_frames}帧 (帧率{self.camera_current_fps}fps)')
|
||||
expected_frames = int(actual_recording_duration * self.camera2_current_fps)
|
||||
self.logger.info(f' 相机2录制预期帧数: {expected_frames}帧 (帧率{self.camera2_current_fps}fps)')
|
||||
elif thread_name == 'femtobolt':
|
||||
expected_frames = int(actual_recording_duration * self.femtobolt_current_fps)
|
||||
self.logger.info(f' FemtoBolt录制预期帧数: {expected_frames}帧 (帧率{self.femtobolt_current_fps}fps)')
|
||||
@ -808,12 +816,16 @@ class RecordingManager:
|
||||
return False
|
||||
|
||||
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.logger.info(f'录制区域已设置:')
|
||||
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}')
|
||||
|
||||
return True
|
||||
@ -828,6 +840,10 @@ class RecordingManager:
|
||||
'screen_size': self.screen_size,
|
||||
'screen_region': self.screen_region,
|
||||
'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,
|
||||
'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