Exemplo n.º 1
0
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)