def analyse_recording(file, args, start_frame=0, end_frame=0): global recordings recording = Recording(file, start_frame, end_frame) try: recording.open_video() logging.debug("Analysing Video ...") analyse_video(recording) get_dimension(recording) if not args.skip_split and start_frame == 0 and end_frame == 0: parts = check_for_splits(recording) if parts: recording.processing_finished() logging.info( "Video contains %s recordings, splitting into different files", str(len(parts))) for part in parts: logging.debug("Video Part from frame %s to %s", str(int(part[0])), str(int(part[1]))) analyse_recording(file, args, part[0], part[1]) raise Exception('video is split') get_start_frame(recording) get_end_frame(recording) calculate_duration(recording) extract_modelname(recording, args.model) render_video(recording, args.output, args.dry_run, quality=args.x265_quality, audio_bitrate=args.audio_bitrate) get_recording_size(recording) except Exception as e: recording.error = str(e) logging.debug(e, exc_info=True) print_recording_stats(recording) recording.processing_finished() if not recording.has_errors() or not recording.error == 'video is split': recordings.append(recording)