data_annotation / compress.py
Newbyl
Add videos with LFS
1f052c0
import os
import subprocess
from tqdm import tqdm
def is_video_file(filename):
video_exts = ('.mp4', '.avi', '.mov', '.mkv', '.flv', '.wmv')
return filename.lower().endswith(video_exts)
def collect_video_files(folder):
video_files = []
for dirpath, _, filenames in os.walk(folder):
for filename in filenames:
if is_video_file(filename):
video_files.append(os.path.join(dirpath, filename))
return video_files
def compress_video_ffmpeg(input_path, output_path, crf=24):
tmp_output = input_path + ".tmp.mp4"
cmd = [
"ffmpeg", "-y", "-i", input_path,
"-c:v", "libx264", "-preset", "veryslow", "-crf", str(crf),
"-c:a", "aac", "-b:a", "128k",
tmp_output
]
subprocess.run(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
os.replace(tmp_output, output_path)
def main():
lia_folder = os.path.join(os.path.dirname(__file__), "common_videos", "mcnet")
video_files = collect_video_files(lia_folder)
for video_path in tqdm(video_files, desc="Compressing videos"):
compress_video_ffmpeg(video_path, video_path)
print(f"Compressed {video_path}")
if __name__ == "__main__":
main()