import imageio import os def images_to_video(image_folder, output_video_name, start_frame=0, end_frame=None, sample_rate=1, fps=10): # Get all images and sort them by file name filenames = sorted([os.path.join(image_folder, image) for image in os.listdir(image_folder) if image.endswith(".png") or image.endswith(".jpg")]) # Ensure that images were found if not filenames: raise ValueError("No images found in the specified directory!") # If end_frame is not specified, default to the last image if end_frame is None or end_frame > len(filenames): end_frame = len(filenames) # Select images based on start_frame, end_frame, and sample_rate selected_filenames = filenames[start_frame:end_frame:sample_rate] # Ensure that some images have been selected if not selected_filenames: raise ValueError("No images selected based on the provided range and sample rate!") # Read the selected images images = [imageio.imread(filename) for filename in selected_filenames] # Write the video file imageio.mimwrite(output_video_name, images, fps=fps) print(f"Video created successfully and saved to {output_video_name}") if __name__ == "__main__": source_image_folder = '' # Replace with the path to your original image folder output_video_name = '' # The desired output video name # Specify the start frame, end frame, and sample rate start_frame = 0 # Starting frame end_frame = 15 # Ending frame, adjust as needed sample_rate = 1 # Frame sampling rate fps = 10 # Frames per second # Create the video images_to_video(source_image_folder, output_video_name, start_frame=start_frame, end_frame=end_frame, sample_rate=sample_rate, fps=fps)