From 198225dbc3e706afa71b1679494c4a8a95bfe856 Mon Sep 17 00:00:00 2001 From: justumen Date: Tue, 30 Jul 2024 17:43:21 +0200 Subject: [PATCH] video not removed, allow for _0001, -0002, etc.. --- images_to_video.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/images_to_video.py b/images_to_video.py index 0347fe2..2645b63 100644 --- a/images_to_video.py +++ b/images_to_video.py @@ -4,6 +4,7 @@ import torch import subprocess from PIL import Image import soundfile as sf +import glob class imagesToVideo: @classmethod @@ -30,10 +31,20 @@ class imagesToVideo: def image_to_video(self, images, fps, name_prefix, format, crf, audio=None): # Remove any existing extension name_prefix = os.path.splitext(name_prefix)[0] - # Add the correct extension - output_file = f"{name_prefix}.{format}" + + # Find the next available number + existing_files = glob.glob(f"{name_prefix}_*.{format}") + if existing_files: + max_num = max([int(f.split('_')[-1].split('.')[0]) for f in existing_files]) + next_num = max_num + 1 + else: + next_num = 1 + + # Create the new filename with the incremented number + output_file = f"{name_prefix}_{next_num:04d}.{format}" + temp_dir = "temp_images_imgs2video" - #Clean up temp dir + # Clean up temp dir if os.path.exists(temp_dir) and os.path.isdir(temp_dir): for file in os.listdir(temp_dir): os.remove(os.path.join(temp_dir, file)) @@ -78,8 +89,6 @@ class imagesToVideo: ]) comment = "MP4 format: Widely compatible, efficient compression, no transparency support." elif format == "webm": - # Fake transparency bug/feature with Inspyre. - # Code to fix tat : creates a fully transparent background and then overlays your image on top of it, which forces the transparency to be preserved... wth is this guys? ffmpeg_cmd.extend([ "-filter_complex", "[0:v]scale=iw:ih,format=rgba,split[s0][s1];[s0]lutrgb=r=0:g=0:b=0:a=0[transparent];[transparent][s1]overlay", "-c:v", "libvpx-vp9", @@ -99,7 +108,7 @@ class imagesToVideo: try: subprocess.run(ffmpeg_cmd, check=True) print(f"Video created successfully: {output_file}") - except subprocess.CalledProcessCode as e: + except subprocess.CalledProcessError as e: print(f"Error creating video: {e}") finally: # Clean up temporary files