>_ rehablogger
Система работает
← Все сессии
СЕССИЯ УСТРОЙСТВА

rehabapp_2026-09-01_14-39-12

Подключение…
Rehab Logger console · история загружается порциями по 250 записей
INFO [console] и. Левая нога должна лежать на другой ноге и быть продолжением корпуса, fixation_message: Фиксируем длину ноги, оставайтесь в нужном положении, error_message: Не заваливайте ногу в сторону}]}, {id: 56, name: Калибровка рабочего угла (угол между прямой таза и ногой), sequence_number: 2, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 83, component_side: right, segment_type: null, parts: [{id: 210, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 211, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 212, sequence_number: 3, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}]}, {id: 84, component_s
INFO [console] ide: left, segment_type: null, parts: [{id: 213, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 214, sequence_number: 2, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 215, sequence_number: 3, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}]}], commands: [{id: 96, command_side: right, position_number: 1, position_message: Оставайтесь лежать на боку, правая нога - продолжение туловища, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайте ногу на необходимый уровень}, {id: 97, command_side: left, position_number: 1, position_message: Оставайтесь лежать на боку, левая нога - продолжение туловища, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайте ногу на необходимый уровень}, {id: 98, command_side: right, position_number: 2,
INFO [console] елайте движения в нужной амплитуде}]}]}, {id: 42, sequence_number: 5, is_monitored: true, name: Подъём прямой ноги в сторону - В и.п. лёжа на боку, image: https://rehabilitation.most.team/storage/exercise/photos/01KQC78495HZ7HDF3FGQ104G16.png, by_body_side: by_side, execution_order_type: isolated, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: Подъём прямой ноги в сторону - В и.п. лёжа на боку, video: https://rehabilitation.most.team/storage/exercise/videos/01KQC78499GQQ5WEFZWRN07YFK.mov, inventory: null, warning: Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу, general_description: Лёжа на боку отвести верхнюю ногу в сторону (поднять). Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу. Представьте, что вы лежите на боку и прижимаетесь спиной к стене, а далее скользите пяткой верхней ноги по стене вверх. Цель – тренировка мышц абдукторов/аддукторов бедра., steps: [{exercise_id
INFO [console] : 42, sequence_number: 1, step_text: Лягте на бок так, чтобы рабочая нога была сверху}, {exercise_id: 42, sequence_number: 2, step_text: Убедитесь, что вы лежите ровно. Голова может лежать на руке или на подушке}, {exercise_id: 42, sequence_number: 3, step_text: Нижнюю ногу слегка согните в колене и тазобедренном суставе для устойчивости}, {exercise_id: 42, sequence_number: 4, step_text: Верхнюю ногу полностью выпрямите. Она должна находиться строго над нижней ногой, образуя одну линию с туловищем}, {exercise_id: 42, sequence_number: 5, step_text: Положите верхнюю руку на талию или на матрас перед собой для равновесия}, {exercise_id: 42, sequence_number: 6, step_text: На выдохе: Медленно поднимите (отведите) прямую ногу вверх. Движение должно происходить строго в плоскости тела, как будто вы отводите ногу в сторону. Нога не должна сгибаться в тазобедренном суставе и отклоняться вперёд по направлению к животу или назад по направлению к спине}, {exercise_id: 42, sequence_number: 7, step_
INFO [console] text: В верхней точке задержитесь на 1-2 секунды, сохраняя ногу прямой и чувствуя напряжение в боковой поверхности бедра и ягодице}, {exercise_id: 42, sequence_number: 8, step_text: На вдохе: Плавно, без рывка, опустите ногу в исходное положение. Старайтесь не класть ногу полностью на нижнюю, а остановитесь чуть выше, чтобы сохранить напряжение в мышцах}, {exercise_id: 42, sequence_number: 9, step_text: Повторите необходимое количество раз }]}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Поднимайте и опускайте правую ногу, left_main_command: null, calibration_parameters: [{id: 55, name: Калибровка сегмента ноги, sequence_number: 1, calibration_parameter_type: one_segment, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 81, component_side: right, segment_type: null, parts: [{id: 206, sequence_numbe
INFO [console] лжна находиться под углом от 90 до 45 градусов относительно пола. Для удобства и стабильности можно опираться не на прямые руки, а на предплечья, согнув руки в локтях}, {exercise_id: 41, sequence_number: 3, step_text: Приподнимите рабочую ногу на 5-10 см }, {exercise_id: 41, sequence_number: 4, step_text: На выдохе отведите рабочую ногу в сторону (наружу) на максимально возможную амплитуду, которую позволяет ваша подвижность и физическое состояние. Движение должно происходить за счёт работы мышц бедра}, {exercise_id: 41, sequence_number: 5, step_text: На вдохе так же плавно верните ногу в исходное положение (перед собой), но не кладите её на пол до окончания подхода. Нога остаётся на весу}, {exercise_id: 41, sequence_number: 6, step_text: Повторите движение ногой заданное количество раз}]}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Отводите правую ногу, left_main_command: null, calibration_parameters: [{id: 54, name: Калибровка амплитуды сегмент
INFO [console] а, sequence_number: 1, calibration_parameter_type: segment_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 79, component_side: right, segment_type: null, parts: [{id: 202, sequence_number: 1, body_point: {id: 30, mediapipe_index: 29, movenet_index: null}, line_type: null, part_type: point}, {id: 203, sequence_number: 2, body_point: {id: 31, mediapipe_index: 30, movenet_index: null}, line_type: null, part_type: point}]}, {id: 80, component_side: left, segment_type: null, parts: [{id: 204, sequence_number: 1, body_point: {id: 30, mediapipe_index: 29, movenet_index: null}, line_type: null, part_type: point}, {id: 205, sequence_number: 2, body_point: {id: 31, mediapipe_index: 30, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 90, command_side: right, position_number: 1, position_message: Сядьт
INFO [console] е на пол лицом к камере. Ноги выпрямите перед собой, держите их вместе. Приподнимите правую ногу на 5-10 см, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Делайте движения в нужной амплитуде}, {id: 91, command_side: left, position_number: 1, position_message: Сядьте на пол лицом к камере. Ноги выпрямите перед собой, держите их вместе. Приподнимите левую ногу на 5-10 см, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Делайте движения в нужной амплитуде}, {id: 92, command_side: right, position_number: 2, position_message: Теперь отведите правую ногу в сторону до комфортного рабочего положения, fixation_message: Фиксируем значение, не отпускайте ногу, error_message: Делайте движения в нужной амплитуде}, {id: 93, command_side: left, position_number: 2, position_message: Теперь отведите левую ногу в сторону до комфортного рабочего положения, fixation_message: Фиксируем значение, не отпускайте ногу, error_message: Д
INFO [console] e: point}, {id: 198, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 78, component_side: left, segment_type: null, parts: [{id: 199, sequence_number: 1, body_point: {id: 12, mediapipe_index: 11, movenet_index: 5}, line_type: null, part_type: point}, {id: 200, sequence_number: 2, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 201, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 86, command_side: right, position_number: 1, position_message: Оставайтесь лежать на спине правым боком к камере, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайте ногу на необходимый уровень}, {id: 87, command_side: left, position_number: 1, position_message: Оставайтесь лежать на спине левым боком к камере, fixation_message: Фиксируем значение, ост
INFO [console] авайтесь в нужном положении, error_message: Поднимайте ногу на необходимый уровень}, {id: 88, command_side: right, position_number: 2, position_message: Теперь поднимите правую ногу в вверх до комфортного положения, примерный уровень: 15°-40° градусов от пола, fixation_message: Фиксируем значение, не опускайте ногу, error_message: Поднимайте ногу на необходимый уровень}, {id: 89, command_side: left, position_number: 2, position_message: Теперь поднимите левую ногу в вверх до комфортного положения, примерный уровень: 15°-40° градусов от пола, fixation_message: Фиксируем значение, не опускайте ногу, error_message: Поднимайте ногу на необходимый уровень}]}]}, {id: 41, sequence_number: 4, is_monitored: true, name: Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, image: https://rehabilitation.most.team/storage/exercise/photos/01KQC6319E6D4MPZ50SGTNW1Q6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 2, execution_c
INFO [console] ount: 6, execution_time: null, instruction: {exercise_name: Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, video: https://rehabilitation.most.team/storage/exercise/videos/01KQC6319HS0NS6B4PRV3WH9FT.mov, inventory: null, warning: Следить за тем, чтобы бедро не ротировалось (вращалось) наружу, носок стопы отведённой ноги должен “смотреть вверх”, general_description: Спина относительно поверхности может находиться от 90 до 45 градусов к полу (например, упираясь не прямыми руками, а предплечьями, отклонившись больше назад). Приподнять прямую рабочую ногу от поверхности и отвести её в сторону на сколько возможно, не опуская ногу, и вернуться в исходное положение. Можно выполнять без пауз между повторениями. Цель – тренировка мышц абдукторов бедра., steps: [{exercise_id: 41, sequence_number: 1, step_text: Сядьте на пол лицом к камере. Ноги выпрямите перед собой}, {exercise_id: 41, sequence_number: 2, step_text: Корпус отклоните назад. Спина до
INFO [console] mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 82, command_side: right, position_number: 1, position_message: Лягте на спину правым боком к камере. Ноги должны лежать на полу прямыми, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите рабочее колено выпрямленным}, {id: 83, command_side: left, position_number: 1, position_message: Лягте на спину левым боком к камере. Ноги должны лежать на полу прямыми, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите рабочее колено выпрямленным}]}, {id: 52, name: Калибровка угла в голеностопе, sequence_number: 2, calibration_parameter_type: angle, fixation_type: min_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 75, component_side: right, segment_type: null, parts: [{id: 190, s
INFO [console] equence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 191, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 192, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 76, component_side: left, segment_type: null, parts: [{id: 193, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 194, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}, {id: 195, sequence_number: 3, body_point: {id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 84, command_side: right, position_number: 1, position_message: Потяните носок правой ноги на себя до комфортного рабочего положения, fixation_message: Фиксируе
INFO [console] м угол в голеностопе, оставайтесь в нужном положении, error_message: Стопа должна быть повернута на себя}, {id: 85, command_side: left, position_number: 1, position_message: Потяните носок левой ноги на себя до комфортного рабочего положения, fixation_message: Фиксируем угол в голеностопе, оставайтесь в нужном положении, error_message: Стопа должна быть повернута на себя}]}, {id: 53, name: Калибровка амплитуды рабочего угла, sequence_number: 3, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: max_at_first, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 77, component_side: right, segment_type: null, parts: [{id: 196, sequence_number: 1, body_point: {id: 13, mediapipe_index: 12, movenet_index: 6}, line_type: null, part_type: point}, {id: 197, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_typ
INFO [console] d: true, name: Круговые движения ногой - в и.п. лежа на спине, image: https://rehabilitation.most.team/storage/exercise/photos/01KQA5HT9XV5G51WZS4TZJVDQ6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: Круговые движения ногой - в и.п. лежа на спине, video: https://rehabilitation.most.team/storage/exercise/videos/01KQA5HTA1S14HGRG0J5HK6SYP.mov, inventory: null, warning: Не допускайте сильного напряжения или переразгиба в пояснице, general_description: В и.п. лежа на спине. Ноги максимально выпрямлены в коленных суставах, стопы "на себя", выполнить движения по часовой стрелке, далее против часовой стрелки. Цель - тренировка четырехглавых мышц, абдукторов/аддукторов, steps: [{exercise_id: 40, sequence_number: 1, step_text: Лягте на спину, расположитесь боком рабочей ноги к камере}, {exercise_id: 40, sequence_number: 2, step_text: Руки расположите вдоль туловища ладонями вниз или в стор
INFO [console] оны для устойчивости}, {exercise_id: 40, sequence_number: 3, step_text: Ноги полностью выпрямите в коленных суставах}, {exercise_id: 40, sequence_number: 4, step_text: Стопы потяните на себя (тыльное сгибание в голеностопном суставе)}, {exercise_id: 40, sequence_number: 5, step_text: Поясницу прижмите к полу, живот слегка подтяните, чтобы избежать излишнего прогиба в пояснице}, {exercise_id: 40, sequence_number: 6, step_text: Начните выполнять круговое движение рабочей выпрямленной ногой. Нога в верхней точке должна подниматься на уровень 30°-45° градусов от пола}, {exercise_id: 40, sequence_number: 7, step_text: Направление ноги (по часовой стрелке / против часовой стрелки) меняйте после каждого повторения}]}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Выполняйте круговые движения правой ногой, left_main_command: null, calibration_parameters: [{id: 51, name: Калибровка угла в колене, sequence_number: 1, calibration_parameter_type: angle, fixatio
INFO [console] n_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 73, component_side: right, segment_type: null, parts: [{id: 184, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 185, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 186, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 74, component_side: left, segment_type: null, parts: [{id: 187, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 188, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 189, sequence_number: 3, body_point: {id: 28,
INFO [console] e: null, part_type: point}, {id: 131, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 54, command_side: right, position_number: 1, position_message: Лягте на спину правым боком к камере, ноги лежат на полу, колени держите выпрямленными, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите колени выпрямленными}, {id: 55, command_side: left, position_number: 1, position_message: Лягте на спину левым боком к камере, ноги лежат на полу, колени держите выпрямленными, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите колени выпрямленными}]}, {id: 42, name: Калибровка амплитуды рабочего угла, sequence_number: 2, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_sid
INFO [console] e: true, is_monitored: true, components: [{id: 55, component_side: right, segment_type: null, parts: [{id: 132, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 133, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 134, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 56, component_side: left, segment_type: null, parts: [{id: 135, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 136, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}, {id: 137, sequence_number: 3, body_point: {id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 56, command_side: right, position_number: 1, p
INFO [console] osition_message: Оставайтесь лежать правым боком камере, потяните носки стоп на себя, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Вращайте стопы в большей амплитуде}, {id: 57, command_side: left, position_number: 1, position_message: Оставайтесь лежать левым боком камере, потяните носки стоп на себя, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Вращайте стопы в большей амплитуде}, {id: 58, command_side: right, position_number: 2, position_message: Теперь потяните носки от себя, положение должно быть комфортным, fixation_message: Фиксируем значение, держите стопы от себя, error_message: Вращайте стопы в большей амплитуде}, {id: 59, command_side: left, position_number: 2, position_message: Теперь потяните носки от себя, положение должно быть комфортным, fixation_message: Фиксируем значение, держите стопы от себя, error_message: Вращайте стопы в большей амплитуде}]}]}, {id: 40, sequence_number: 3, is_monitore
INFO [console] y_side: not_by_side, execution_order_type: null, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: Сгибание и разгибание в голеностопных суставах, video: https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov, inventory: null, warning: Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь или наружу (большой палец направлен строго вверх), general_description: Исходное положение - лёжа на спине боком к камере, ноги выпрямлены в коленях. Выполнять движения стопами на себя и от себя в максимально доступной амплитуде., steps: [{exercise_id: 35, sequence_number: 1, step_text: Примите положение лёжа на спине (на полу, коврике или тренировочной скамье), боком к камере}, {exercise_id: 35, sequence_number: 2, step_text: Выпрямите обе ноги в коленях}, {exercise_id: 35, sequence_number: 3, step_text: Стопы расположите параллельно друг другу на ширине таза}, {exercise_id: 35, seq
INFO [console] uence_number: 4, step_text: Руки свободно лежат вдоль туловища ладонями вниз или слегка разведены в стороны для устойчивости}, {exercise_id: 35, sequence_number: 5, step_text: Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновременное движение стопами}, {exercise_id: 35, sequence_number: 6, step_text: На себя: Плавно потяните носки стоп максимально на себя (тыльное сгибание), ощущая растяжение в задней поверхности голени и подколенной области}, {exercise_id: 35, sequence_number: 7, step_text: От себя: Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание), как будто хотите встать на "цыпочки", ощущая напряжение в икрах}, {exercise_id: 35, sequence_number: 8, step_text: Движение должно быть ритмичным, без рывков, в спокойном темпе}]}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Сгибайте и разгибайте стопы, left_main_command: null, calibration_parameters: [{id: 41, name: Калибровка
INFO [console] угла в колене, sequence_number: 1, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 53, component_side: right, segment_type: null, parts: [{id: 126, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 127, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 128, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 54, component_side: left, segment_type: null, parts: [{id: 129, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 130, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_typ
INFO [console] , body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 100, component_side: left, segment_type: null, parts: [{id: 259, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 260, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 261, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 120, command_side: right, position_number: 1, position_message: Встаньте правым боком к камере и положите правую ногу на возвышенность, колено прямое, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите колено выпрямленным}, {id: 121, command_side: left, position_number: 1, position_message: Встаньте левым боком к камере и положите левую ногу на возвышенность, колено прямое, fixation_me
INFO [console] ssage: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите колено выпрямленным}]}, {id: 106, name: Калибровка рабочего угла, sequence_number: 2, calibration_parameter_type: angle, fixation_type: min_value, fixation_order: null, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 145, component_side: right, segment_type: null, parts: [{id: 388, sequence_number: 1, body_point: {id: 13, mediapipe_index: 12, movenet_index: 6}, line_type: null, part_type: point}, {id: 389, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 390, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 146, component_side: left, segment_type: null, parts: [{id: 391, sequence_number: 1, body_point: {id: 12, mediapipe_index: 11, movenet_index: 5}, l
INFO [console] ine_type: null, part_type: point}, {id: 392, sequence_number: 2, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 393, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 156, command_side: right, position_number: 1, position_message: Наклонитесь к правой ноге до ощущения комфортного растяжения, fixation_message: Фиксируем угол наклона, оставайтесь в нужном положении, error_message: Опускайте корпус ниже}, {id: 157, command_side: left, position_number: 1, position_message: Наклонитесь к левой ноге до ощущения комфортного растяжения, fixation_message: Фиксируем угол наклона, оставайтесь в нужном положении, error_message: Опускайте корпус ниже}]}]}, {id: 35, sequence_number: 2, is_monitored: true, name: Сгибание и разгибание в голеностопных суставах, image: https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png, by_bod
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-01T11:40:03.349713Z, request_id: 6ced9d6b-8e30-4cca-923c-99772461bf31, version: v1}, data: {unit_id: 1015, workout_duration_start: 10, workout_duration_end: 20, body_side: right, exercises: [{id: 47, sequence_number: 1, is_monitored: true, name: Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, image: https://rehabilitation.most.team/storage/exercise/photos/01KQCHWY0J06QHXQ4P2BH5VD3A.png, by_body_side: by_side, execution_order_type: isolated, approaches_count: 2, execution_count: null, execution_time: 15, instruction: {exercise_name: Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, video: https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov, inventory: Возвышенность (стул и т.п.), warning: Не допускайте разворота/заваливания поднятой ноги, general_description: Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул, скамейка,
INFO [console] ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; стопа и колено поднятой ноги не должны "заваливаться" наружу (отсутствие ротации); наклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; дыхание свободное, без задержек; ощущение растяжения должно быть комфортным, без острой боли., steps: [{exercise_id: 47, sequence_number: 1, step_text: Встаньте боком растягиваемой ноги к камере}, {exercise_id: 47, sequence_number: 2, step_text: Поставьте рабочую ногу на возвышенность, другая нога опорная}, {exercise_id: 47, sequence_number: 3, step_text: Держите спину прямой}, {exercise_id: 47, sequence_number: 4, step_text: Стопа поднятой ноги смотрит на себя}, {exercise_id: 47, sequence_number: 5, step_text: Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянуться с прям
INFO [console] ой спиной}, {exercise_id: 47, sequence_number: 6, step_text: В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время}]}, camera_orientation: vertical, neural_network_type: mediapipe, base_main_command: Наклонитесь к правой ноге, left_main_command: null, calibration_parameters: [{id: 64, name: Калибровка угла в колене, sequence_number: 1, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 99, component_side: right, segment_type: null, parts: [{id: 256, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 257, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 258, sequence_number: 3
INFO [console] CameraVideoRecorder: Рекордер переведен в режим ЗАПИСИ (ожидание первого кадра).
INFO [console] PoseEstimator: worker isolate up (gpu=false, fallback=none, model=pose_landmarks_detector_heavy.tflite (27055 KB), cores=cores=[4, 5, 6, 7]@2707MHz ok, on cpu5)
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 imgSize=720 x 480 -> upright=480x720 imgFormat=35 planes=3 pixelStride=1 rowStride=768 screenSize=394x853
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 imgSize=720 x 480 -> upright=480x720 imgFormat=35 planes=3 pixelStride=1 rowStride=768 screenSize=394x853
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 imgSize=720 x 480 -> upright=480x720 imgFormat=35 planes=3 pixelStride=1 rowStride=768 screenSize=394x853
INFO [console] POSE_MAP: [0 norm=(0.408,0.550)] [11 norm=(0.216,0.564)] [12 norm=(0.751,0.573)] [23 norm=(0.348,0.568)] [24 norm=(0.606,0.569)]
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=16(13.0fps) processed=5(4.1fps) replaced=9(7.3fps) buildMs=4.43 estimatorMs=300.09 (pre=2.5 infer=238.0 det=0.0) totalMs=309.77 lagMs=380.8 predLatMs=80.0 actualFps=4.1
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=11(10.3fps) processed=5(4.7fps) replaced=6(5.6fps) buildMs=2.41 estimatorMs=209.32 (pre=1.6 infer=186.6 det=0.0) totalMs=210.06 lagMs=281.7 predLatMs=80.0 actualFps=4.7
INFO [console] PASSPORT_STATE: phase=waitingReady hint=searching
INFO [console] PASSPORT_WHY: hint=searching frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=13(11.7fps) processed=11(9.9fps) replaced=2(1.8fps) buildMs=1.66 estimatorMs=96.72 (pre=3.4 infer=193.5 det=44.9) totalMs=98.25 lagMs=115.0 predLatMs=100.1 actualFps=9.9
INFO [console] PASSPORT_STATE: phase=waitingReady hint=searching
INFO [console] PASSPORT_WHY: hint=searching frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=14(12.5fps) processed=6(5.4fps) replaced=8(7.2fps) buildMs=1.64 estimatorMs=176.45 (pre=1.9 infer=207.8 det=0.0) totalMs=177.19 lagMs=232.9 predLatMs=108.0 actualFps=5.4
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=6(6.0fps) processed=4(4.0fps) replaced=2(2.0fps) buildMs=4.10 estimatorMs=228.11 (pre=1.9 infer=191.5 det=0.0) totalMs=229.09 lagMs=258.3 predLatMs=112.1 actualFps=4.0
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=16(14.7fps) processed=5(4.6fps) replaced=11(10.1fps) buildMs=1.40 estimatorMs=215.41 (pre=2.3 infer=199.8 det=0.0) totalMs=216.71 lagMs=257.2 predLatMs=116.1 actualFps=4.6
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=15(13.1fps) processed=5(4.4fps) replaced=10(8.7fps) buildMs=1.80 estimatorMs=228.53 (pre=5.0 infer=193.0 det=0.0) totalMs=229.53 lagMs=265.1 predLatMs=119.3 actualFps=4.4
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=13(11.5fps) processed=5(4.4fps) replaced=8(7.1fps) buildMs=1.25 estimatorMs=224.37 (pre=6.5 infer=201.6 det=0.0) totalMs=225.17 lagMs=249.4 predLatMs=121.7 actualFps=4.4
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=13(11.9fps) processed=5(4.6fps) replaced=9(8.3fps) buildMs=1.23 estimatorMs=216.70 (pre=4.2 infer=197.1 det=0.0) totalMs=217.54 lagMs=244.9 predLatMs=123.6 actualFps=4.6
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=holdStill
INFO [console] POSE_METRICS: received=21(17.6fps) processed=5(4.2fps) replaced=15(12.6fps) buildMs=1.44 estimatorMs=227.32 (pre=3.8 infer=199.8 det=0.0) totalMs=228.62 lagMs=256.6 predLatMs=125.0 actualFps=4.2
INFO [console] PASSPORT_WHY: hint=ready frontal=0.69(min 0.4) lean=0.8deg(max 20.0) speed=0.009(max 0.06) armsDown=true armsAside=true(2.50 of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=lowerArms
INFO [console] POSE_METRICS: received=12(10.3fps) processed=5(4.3fps) replaced=7(6.0fps) buildMs=1.16 estimatorMs=219.71 (pre=3.9 infer=206.1 det=0.0) totalMs=223.48 lagMs=282.8 predLatMs=126.2 actualFps=4.3
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.69(min 0.4) lean=1.7deg(max 20.0) speed=0.062(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=ready
INFO [console] POSE_METRICS: received=16(13.5fps) processed=5(4.2fps) replaced=11(9.3fps) buildMs=1.28 estimatorMs=218.43 (pre=3.4 infer=199.2 det=0.0) totalMs=220.25 lagMs=244.7 predLatMs=127.0 actualFps=4.2
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.66(min 0.4) lean=0.4deg(max 20.0) speed=0.036(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=ready
INFO [console] POSE_METRICS: received=19(18.1fps) processed=5(4.8fps) replaced=14(13.3fps) buildMs=2.03 estimatorMs=208.32 (pre=4.1 infer=199.0 det=0.0) totalMs=209.55 lagMs=241.7 predLatMs=127.7 actualFps=4.8
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.63(min 0.4) lean=0.0deg(max 20.0) speed=0.031(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=17(15.4fps) processed=5(4.5fps) replaced=12(10.9fps) buildMs=1.33 estimatorMs=215.12 (pre=3.9 infer=211.6 det=0.0) totalMs=216.30 lagMs=255.9 predLatMs=128.2 actualFps=4.5
INFO [console] PASSPORT_STATE: phase=waitingReady hint=holdStill
INFO [console] PASSPORT_WHY: hint=ready frontal=0.72(min 0.4) lean=0.5deg(max 20.0) speed=0.031(max 0.06) armsDown=true armsAside=true(2.68 of min 1.15)
INFO [console] POSE_METRICS: received=14(12.5fps) processed=5(4.4fps) replaced=9(8.0fps) buildMs=1.82 estimatorMs=223.37 (pre=4.8 infer=196.0 det=0.0) totalMs=224.54 lagMs=257.4 predLatMs=128.6 actualFps=4.4
INFO [console] PASSPORT_STATE: phase=waitingReady hint=ready
INFO [console] PASSPORT_WHY: hint=ready frontal=0.70(min 0.4) lean=0.6deg(max 20.0) speed=0.057(max 0.06) armsDown=true armsAside=true(2.57 of min 1.15)
INFO [console] PASSPORT_STATE: phase=collecting hint=ready
INFO [console] POSE_METRICS: received=18(16.3fps) processed=5(4.5fps) replaced=13(11.8fps) buildMs=2.50 estimatorMs=219.49 (pre=19.7 infer=194.2 det=0.0) totalMs=220.74 lagMs=240.3 predLatMs=128.9 actualFps=4.5
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.66(min 0.4) lean=0.1deg(max 20.0) speed=0.043(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=lowerArms
INFO [console] POSE_METRICS: received=19(17.1fps) processed=5(4.5fps) replaced=14(12.6fps) buildMs=2.36 estimatorMs=220.87 (pre=3.7 infer=204.9 det=0.0) totalMs=222.10 lagMs=250.0 predLatMs=129.2 actualFps=4.5
INFO [console] PASSPORT_WHY: hint=ready frontal=0.72(min 0.4) lean=0.4deg(max 20.0) speed=0.021(max 0.06) armsDown=true armsAside=true(2.61 of min 1.15)
INFO [console] PASSPORT_STATE: phase=collecting hint=ready
INFO [console] POSE_METRICS: received=18(15.7fps) processed=5(4.4fps) replaced=13(11.4fps) buildMs=5.45 estimatorMs=227.42 (pre=3.8 infer=199.4 det=0.0) totalMs=228.53 lagMs=286.9 predLatMs=129.4 actualFps=4.4
INFO [console] PASSPORT_STATE: phase=waitingReady hint=lowerArms
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.66(min 0.4) lean=1.2deg(max 20.0) speed=0.004(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=17(14.8fps) processed=5(4.3fps) replaced=12(10.4fps) buildMs=2.14 estimatorMs=228.86 (pre=4.6 infer=201.9 det=0.0) totalMs=230.16 lagMs=262.9 predLatMs=129.5 actualFps=4.3
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.68(min 0.4) lean=0.0deg(max 20.0) speed=0.020(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=18(16.7fps) processed=5(4.6fps) replaced=13(12.0fps) buildMs=2.41 estimatorMs=214.66 (pre=5.5 infer=200.0 det=0.0) totalMs=215.78 lagMs=255.0 predLatMs=129.6 actualFps=4.6
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.70(min 0.4) lean=0.3deg(max 20.0) speed=0.059(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=18(16.3fps) processed=5(4.5fps) replaced=13(11.8fps) buildMs=1.20 estimatorMs=220.20 (pre=4.2 infer=195.5 det=0.0) totalMs=220.72 lagMs=277.6 predLatMs=129.7 actualFps=4.5
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.69(min 0.4) lean=0.0deg(max 20.0) speed=0.088(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=15(14.4fps) processed=5(4.8fps) replaced=10(9.6fps) buildMs=1.48 estimatorMs=207.24 (pre=3.5 infer=200.9 det=0.0) totalMs=207.92 lagMs=282.4 predLatMs=129.8 actualFps=4.8
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.69(min 0.4) lean=0.6deg(max 20.0) speed=0.151(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=15(13.7fps) processed=5(4.6fps) replaced=10(9.1fps) buildMs=2.30 estimatorMs=218.39 (pre=3.9 infer=200.6 det=0.0) totalMs=219.37 lagMs=256.1 predLatMs=129.8 actualFps=4.6
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.71(min 0.4) lean=0.4deg(max 20.0) speed=0.045(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=17(15.4fps) processed=5(4.5fps) replaced=12(10.9fps) buildMs=1.49 estimatorMs=215.37 (pre=4.3 infer=202.3 det=0.0) totalMs=219.97 lagMs=251.1 predLatMs=129.9 actualFps=4.5
INFO [console] BODY_POINT_PHASE: timeout — no geometry data in 30s
INFO [console] 🎯 БОДИПОИНТ: Скрытый 30-секундный таймер-убийца успешно обезврежен!
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.65(min 0.4) lean=0.1deg(max 20.0) speed=0.107(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=holdStill
INFO [console] POSE_METRICS: received=17(15.0fps) processed=5(4.4fps) replaced=12(10.6fps) buildMs=2.54 estimatorMs=225.33 (pre=3.6 infer=214.8 det=0.0) totalMs=226.24 lagMs=258.0 predLatMs=129.9 actualFps=4.4
INFO [console] BODY_POINT_ENGINE: isCalibrated → true (event #121)
INFO [console] LEG_SKEL_L: i23=(0.092,0.002,0.019) v=1.000 p=1.000 i25=(0.100,0.430,-0.055) v=0.938 p=1.000 i27=(0.095,0.804,0.061) v=0.928 p=1.000
INFO [console] LEG_SKEL_R: i24=(-0.089,-0.005,-0.015) v=1.000 p=1.000 i26=(-0.074,0.342,-0.069) v=0.870 p=1.000 i28=(-0.118,0.768,0.015) v=0.960 p=1.000
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.66(min 0.4) lean=0.9deg(max 20.0) speed=0.044(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=13(12.7fps) processed=4(3.9fps) replaced=9(8.8fps) buildMs=2.00 estimatorMs=223.19 (pre=3.2 infer=199.3 det=0.0) totalMs=255.05 lagMs=306.5 predLatMs=129.9 actualFps=3.9
INFO [console] PASSPORT_STATE: phase=waitingReady hint=ready
INFO [console] PASSPORT_STATE: phase=collecting hint=ready
INFO [console] CameraVideoRecorder: Сбор завершен. Кадров на диске: 417
INFO [console] CameraVideoRecorder: Чистая длительность: 30.53с, Входящий FPS: 13.66
INFO [console] CameraVideoRecorder: Запуск FFmpeg сборщика...
INFO [console] Loading ffmpeg-kit-flutter.
INFO [console] PASSPORT_WHY: hint=ready frontal=0.72(min 0.4) lean=0.6deg(max 20.0) speed=0.013(max 0.06) armsDown=true armsAside=true(2.80 of min 1.15)
INFO [console] POSE_METRICS: received=16(14.8fps) processed=5(4.6fps) replaced=11(10.2fps) buildMs=1.29 estimatorMs=213.04 (pre=3.8 infer=197.6 det=0.0) totalMs=215.17 lagMs=273.7 predLatMs=129.9 actualFps=4.6
INFO [console] AML_EXE: 165.70937580084623
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._startPlayer (package:flutter_sound/public/flutter_sound_player.dart:1078:13)
INFO [console] │ #1 FlutterSoundPlayer.startPlayer.<anonymous closure> (package:flutter_sound/public/flutter_sound_player.dart:1058:17)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:---> startPlayer
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._stop (package:flutter_sound/public/flutter_sound_player.dart:1826:13)
INFO [console] │ #1 FlutterSoundPlayer._startPlayer (package:flutter_sound/public/flutter_sound_player.dart:1113:11)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:---> _stop
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.stopPlayerCompleted (package:flutter_sound/public/flutter_sound_player.dart:360:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:98:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 ---> stopPlayerCompleted: true
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.stopPlayerCompleted (package:flutter_sound/public/flutter_sound_player.dart:375:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:98:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 <--- stopPlayerCompleted: true
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._stop (package:flutter_sound/public/flutter_sound_player.dart:1885:13)
INFO [console] │ #1 <asynchronous suspension>
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:<--- _stop
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] AML_EXE: 166.615659990368
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._startPlayer (package:flutter_sound/public/flutter_sound_player.dart:1156:13)
INFO [console] │ #1 <asynchronous suspension>
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:<--- startPlayer
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.log (package:flutter_sound/public/flutter_sound_player.dart:418:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:118:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 [android]: mediaPlayer prepared and started
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] AML_EXE: 167.34906428657206
INFO [console] AML_EXE: 167.60001409179222
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.startPlayerCompleted (package:flutter_sound/public/flutter_sound_player.dart:341:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:91:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 ---> startPlayerCompleted: true
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.startPlayerCompleted (package:flutter_sound/public/flutter_sound_player.dart:353:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:91:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 <--- startPlayerCompleted: true
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] Loaded ffmpeg-kit-flutter-android-min-gpl-arm64-v8a-8.0.0.
INFO [console] PASSPORT_WHY: hint=ready frontal=0.71(min 0.4) lean=0.6deg(max 20.0) speed=0.004(max 0.06) armsDown=true armsAside=true(2.50 of min 1.15)
INFO [console] AML_EXE: 168.225027940701
INFO [console] PASSPORT_STATE: phase=collecting hint=lowerArms
INFO [console] POSE_METRICS: received=6(5.0fps) processed=5(4.2fps) replaced=1(0.8fps) buildMs=1.88 estimatorMs=217.95 (pre=4.1 infer=201.8 det=0.0) totalMs=219.79 lagMs=312.3 predLatMs=129.9 actualFps=4.2
INFO [console] AML_EXE: 165.975027940701
INFO [console] CameraVideoRecorder: FFmpeg упал:
INFO [console] ffmpeg version n8.1.2 Copyright (c) 2000-2026 the FFmpeg developers
INFO [console] built with Android (13065274, +pgo, -bolt, +lto, -mlgo, based on r547379) clang version 20.0.0 (https://android.googlesource.com/toolchain/llvm-project b718bcaf8c198c82f3021447d943401e3ab5bd54)
INFO [console] configuration: --cross-prefix=aarch64-linux-android- --sysroot=/Users/me/Library/Android/sdk/ndk/29.0.13113456/toolchains/llvm/prebuilt/darwin-x86_64/sysroot --prefix=/Users/me/StudioProjects/ffmpeg-kit-6.0.LTS/prebuilt/android-arm64/ffmpeg --pkg-config=/opt/homebrew/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --target-os=android --enable-neon --enable-asm --enable-inline-asm --ar=llvm-ar --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --ranlib=llvm-ranlib --strip=llvm-strip --nm=llvm-nm --extra-libs='-L/Users/me/StudioProjects/ffmpeg-kit-6.0.LTS/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --disable-autodetect --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --disable-static --enable-shared --enable-pthreads --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libx264 --enable-libxvid --enable-libx265 --enable-libvidstab --disable-sdl2 --disable-openssl --enable-zlib --enable-mediacodec --enable-gpl
INFO [console] libavutil 60. 26.102 / 60. 26.102
INFO [console] libavcodec 62. 28.102 / 62. 28.102
INFO [console] libavformat 62. 12.102 / 62. 12.102
INFO [console] libavdevice 62. 3.102 / 62. 3.102
INFO [console] libavfilter 11. 14.102 / 11. 14.102
INFO [console] libswscale 9. 5.102 / 9. 5.102
INFO [console] AML_EXE: 163.725027940701
INFO [console] AML_EXE: 162.48090162527947
INFO [console] PASSPORT_STATE: phase=waitingReady hint=holdStill
INFO [console] AML_EXE: 162.6266113252087
INFO [console] PASSPORT_WHY: hint=ready frontal=0.71(min 0.4) lean=3.2deg(max 20.0) speed=0.032(max 0.06) armsDown=true armsAside=true(2.94 of min 1.15)
INFO [console] AML_EXE: 161.86101475065016
INFO [console] POSE_METRICS: received=14(13.1fps) processed=5(4.7fps) replaced=9(8.4fps) buildMs=2.30 estimatorMs=211.54 (pre=4.6 infer=193.2 det=0.0) totalMs=213.35 lagMs=276.9 predLatMs=130.0 actualFps=4.7
INFO [console] AML_EXE: 162.5339960558942
INFO [console] AML_EXE: 163.3467306768719
INFO [console] AML_EXE: 162.27294904264082
INFO [console] PASSPORT_STATE: phase=waitingReady hint=holdStill
INFO [console] AML_EXE: 161.61039698682765
INFO [console] PASSPORT_WHY: hint=holdStill frontal=0.72(min 0.4) lean=3.9deg(max 20.0) speed=0.118(max 0.06) armsDown=true armsAside=true(3.05 of min 1.15)
INFO [console] AML_EXE: 163.63884668543287
INFO [console] POSE_METRICS: received=17(14.7fps) processed=5(4.3fps) replaced=12(10.4fps) buildMs=4.18 estimatorMs=229.15 (pre=8.8 infer=188.3 det=0.0) totalMs=230.66 lagMs=300.7 predLatMs=130.0 actualFps=4.3
INFO [console] AML_EXE: 162.45744929847606
INFO [console] AML_EXE: 162.22188955148044
INFO [console] AML_EXE: null
INFO [console] PASSPORT_STATE: phase=waitingReady hint=fullBodyNotVisible
INFO [console] AML_EXE: null
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.64(min 0.4) lean=2.6deg(max 20.0) speed=0.229(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] AML_EXE: 163.73172927737363
INFO [console] POSE_METRICS: received=14(13.2fps) processed=5(4.7fps) replaced=9(8.5fps) buildMs=1.55 estimatorMs=208.76 (pre=2.4 infer=197.5 det=0.0) totalMs=211.24 lagMs=237.2 predLatMs=130.0 actualFps=4.7
INFO [console] AML_EXE: 165.13766506245798
INFO [console] AML_EXE: null
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.log (package:flutter_sound/public/flutter_sound_player.dart:418:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:118:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 [android]: Playback completed.
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.audioPlayerFinished (package:flutter_sound/public/flutter_sound_player.dart:256:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:72:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:---> audioPlayerFinished
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.audioPlayerFinished (package:flutter_sound/public/flutter_sound_player.dart:274:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:72:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:<--- audioPlayerFinished
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] AML_EXE: null
INFO [console] LEG_SKEL_L: i23=(-0.069,0.010,0.002) v=1.000 p=1.000 i25=(-0.105,0.402,-0.017) v=0.351 p=1.000 i27=(-0.084,0.725,-0.018) v=0.235 p=0.998
INFO [console] LEG_SKEL_R: i24=(0.071,-0.012,-0.000) v=1.000 p=1.000 i26=(0.053,0.358,-0.028) v=0.264 p=1.000 i28=(-0.053,0.725,-0.012) v=0.222 p=0.999
INFO [console] AML_EXE: null
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=10(9.5fps) processed=5(4.7fps) replaced=5(4.7fps) buildMs=2.20 estimatorMs=209.22 (pre=2.0 infer=190.6 det=0.0) totalMs=210.42 lagMs=289.9 predLatMs=130.0 actualFps=4.7
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=21(18.8fps) processed=5(4.5fps) replaced=16(14.3fps) buildMs=1.95 estimatorMs=221.97 (pre=2.7 infer=216.0 det=0.0) totalMs=222.87 lagMs=262.2 predLatMs=130.0 actualFps=4.5
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] POSE_METRICS: received=14(13.2fps) processed=5(4.7fps) replaced=9(8.5fps) buildMs=1.78 estimatorMs=210.22 (pre=2.0 infer=202.4 det=0.0) totalMs=212.02 lagMs=243.0 predLatMs=130.0 actualFps=4.7
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
$
250 строкUTF-8LIVE