| import os |
| import sys |
| import time |
| import argparse |
|
|
| from CPR_Module.Common.logging_config import cpr_logger |
| from CPR_Module.Educational_Mode.CPRAnalyzer import CPRAnalyzer |
|
|
| cpr_logger.info("TEST LOG: Script started successfully") |
|
|
| def main(input_video, output_dir=None): |
| |
| requested_fps = 30 |
| base_dir = os.getcwd() |
| cpr_logger.info(f"[CONFIG] Base directory: {base_dir}") |
| |
| |
| if not os.path.exists(input_video): |
| cpr_logger.error(f"[ERROR] Input video not found at: {input_video}") |
| sys.exit(1) |
| |
| |
| original_name = os.path.splitext(os.path.basename(input_video))[0] |
| cpr_logger.info(f"[CONFIG] Original video name: {original_name}") |
| |
| |
| if output_dir: |
| os.makedirs(output_dir, exist_ok=True) |
| cpr_logger.info(f"[CONFIG] Output will be saved to: {output_dir}") |
| |
| |
| video_output_path = os.path.join(output_dir, f"{original_name}_output.mp4") |
| plot_output_path = os.path.join(output_dir, f"{original_name}_output.png") |
| |
| |
| cpr_logger.info(f"[CONFIG] Video input: {input_video}") |
| cpr_logger.info(f"[CONFIG] Video output: {video_output_path}") |
| cpr_logger.info(f"[CONFIG] Plot output: {plot_output_path}") |
| |
| |
| initialization_start_time = time.time() |
| analyzer = CPRAnalyzer(input_video, video_output_path, plot_output_path, requested_fps) |
| |
| initialization_end_time = time.time() |
| initialization_elapsed_time = initialization_end_time - initialization_start_time |
| cpr_logger.info(f"[TIMING] Initialization time: {initialization_elapsed_time:.2f}s") |
| |
| try: |
| analyzer.run_analysis_video() |
| finally: |
| cpr_logger.info(f"[MAIN] CPR Analysis Terminated") |
|
|
| |
| if __name__ == "__main__": |
| cpr_logger.info("Starting CPR Analysis Tool") |
| parser = argparse.ArgumentParser(description="CPR Analysis Tool") |
|
|
| cpr_logger.info("Parsing command line arguments") |
| parser.add_argument( |
| "-i", "--input", |
| required=True, |
| help="Path to input video file" |
| ) |
| parser.add_argument( |
| "-o", "--output", |
| default=None, |
| help="Optional output directory path" |
| ) |
| args = parser.parse_args() |
| |
| cpr_logger.info(f"Input video: {args.input}") |
| cpr_logger.info(f"Output directory: {args.output if args.output else 'Not specified, using current directory'}") |
| |
| cpr_logger.info("Starting main function") |
| main(args.input, args.output) |