Spaces:
Running
on
Zero
Running
on
Zero
import os | |
import datetime | |
import uuid | |
from typing import List | |
import supervision as sv | |
# MAX_VIDEO_LENGTH_SEC = 1 | |
MAX_VIDEO_LENGTH_SEC = 2 | |
def generate_file_name(extension="mp4"): | |
current_datetime = datetime.datetime.now().strftime("%Y%m%d%H%M%S") | |
unique_id = uuid.uuid4() | |
return f"{current_datetime}_{unique_id}.{extension}" | |
def list_files_older_than(directory: str, diff_minutes: int) -> List[str]: | |
diff_seconds = diff_minutes * 60 | |
now = datetime.datetime.now() | |
older_files: List[str] = [] | |
for filename in os.listdir(directory): | |
file_path = os.path.join(directory, filename) | |
if os.path.isfile(file_path): | |
file_mod_time = os.path.getmtime(file_path) | |
file_mod_datetime = datetime.datetime.fromtimestamp(file_mod_time) | |
time_diff = now - file_mod_datetime | |
if time_diff.total_seconds() > diff_seconds: | |
older_files.append(file_path) | |
return older_files | |
def remove_files_older_than(directory: str, diff_minutes: int) -> None: | |
older_files = list_files_older_than(directory, diff_minutes) | |
file_count = len(older_files) | |
for file_path in older_files: | |
os.remove(file_path) | |
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") | |
print( | |
f"[{now}] Removed {file_count} files older than {diff_minutes} minutes from " | |
f"'{directory}' directory." | |
) | |
def calculate_end_frame_index( | |
source_video_path: str, | |
max_video_length_sec: int = MAX_VIDEO_LENGTH_SEC | |
) -> int: | |
video_info = sv.VideoInfo.from_video_path(source_video_path) | |
return min( | |
video_info.total_frames, | |
video_info.fps * max_video_length_sec | |
) | |
def create_directory(directory_path: str) -> None: | |
if not os.path.exists(directory_path): | |
os.makedirs(directory_path) | |