diff --git a/frigate/api/media.py b/frigate/api/media.py index 489c008b4..69f0b8372 100644 --- a/frigate/api/media.py +++ b/frigate/api/media.py @@ -1368,12 +1368,17 @@ def preview_gif( file_start = f"preview_{camera_name}-" start_file = f"{file_start}{start_ts}.{PREVIEW_FRAME_TYPE}" end_file = f"{file_start}{end_ts}.{PREVIEW_FRAME_TYPE}" + + camera_files = [ + entry.name + for entry in os.scandir(preview_dir) + if entry.name.startswith(file_start) + ] + camera_files.sort() + selected_previews = [] - for file in sorted(os.listdir(preview_dir)): - if not file.startswith(file_start): - continue - + for file in camera_files: if file < start_file: continue @@ -1550,12 +1555,17 @@ def preview_mp4( file_start = f"preview_{camera_name}-" start_file = f"{file_start}{start_ts}.{PREVIEW_FRAME_TYPE}" end_file = f"{file_start}{end_ts}.{PREVIEW_FRAME_TYPE}" + + camera_files = [ + entry.name + for entry in os.scandir(preview_dir) + if entry.name.startswith(file_start) + ] + camera_files.sort() + selected_previews = [] - for file in sorted(os.listdir(preview_dir)): - if not file.startswith(file_start): - continue - + for file in camera_files: if file < start_file: continue diff --git a/frigate/api/preview.py b/frigate/api/preview.py index a5e30764d..a307b5abc 100644 --- a/frigate/api/preview.py +++ b/frigate/api/preview.py @@ -148,12 +148,17 @@ def get_preview_frames_from_cache(camera_name: str, start_ts: float, end_ts: flo file_start = f"preview_{camera_name}-" start_file = f"{file_start}{start_ts}.{PREVIEW_FRAME_TYPE}" end_file = f"{file_start}{end_ts}.{PREVIEW_FRAME_TYPE}" + + camera_files = [ + entry.name + for entry in os.scandir(preview_dir) + if entry.name.startswith(file_start) + ] + camera_files.sort() + selected_previews = [] - for file in sorted(os.listdir(preview_dir)): - if not file.startswith(file_start): - continue - + for file in camera_files: if file < start_file: continue diff --git a/frigate/data_processing/post/review_descriptions.py b/frigate/data_processing/post/review_descriptions.py index c5e51d612..3740ac25f 100644 --- a/frigate/data_processing/post/review_descriptions.py +++ b/frigate/data_processing/post/review_descriptions.py @@ -366,12 +366,17 @@ class ReviewDescriptionProcessor(PostProcessorApi): file_start = f"preview_{camera}-" start_file = f"{file_start}{start_time}.webp" end_file = f"{file_start}{end_time}.webp" + + camera_files = [ + entry.name + for entry in os.scandir(preview_dir) + if entry.name.startswith(file_start) + ] + camera_files.sort() + all_frames: list[str] = [] - for file in sorted(os.listdir(preview_dir)): - if not file.startswith(file_start): - continue - + for file in camera_files: if file < start_file: if len(all_frames): all_frames[0] = os.path.join(preview_dir, file)