예제 #1
0
def main():

    # Extract specific number of key frames from video
    # if os.name == 'nt':
    #     multiprocessing.freeze_support()

    vd = Video()

    # folder to save extracted images
    output_folder_video_image = "selectedframes"
    out_dir_path = os.path.join(".", output_folder_video_image)

    if not os.path.isdir(out_dir_path):
        os.mkdir(out_dir_path)

    # number of images to be returned
    no_of_frames_to_returned = 20
    # VIdeo file path
    video_file_path = os.path.join(".", "tests", "data", "pos_video.mp4")
    print(f"Input video file path = {video_file_path}")

    imgs = vd.extract_video_keyframes(
        no_of_frames=no_of_frames_to_returned, file_path=video_file_path
    )

    # Save it to disk
    for counter, img in enumerate(imgs):
        vd.save_frame_to_disk(
            img,
            file_path=out_dir_path,
            file_name="test_" + str(counter),
            file_ext=".jpeg",
        )
    print(f"Exracted key frames file path = {out_dir_path}")
예제 #2
0
def kframe_test():
    vd = Video()
    from datetime import datetime
    dt_start = datetime.now()
    test_video_path = '/Users/omelnyk/Work/vidiscovery-recognition/data/KALUSH feat alyona alyona  Гори_v720P.mp4'
    duration = vd._get_video_duration_with_ffmpeg(test_video_path)
    print(int(duration))
    imgs = vd.extract_video_keyframes(no_of_frames=int(duration), file_path=test_video_path)
    print(len(imgs))
    print("extraction time: " + str((datetime.now() - dt_start).total_seconds()))
    _, axs = plt.subplots(4, 5, figsize=(20, 20))
    axs = axs.flatten()
    for img, ax in zip(imgs, axs):
        ax.imshow(img)
    plt.show()