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}")
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()