|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import os |
|
from multiprocessing import Pool |
|
import tqdm |
|
|
|
from latentsync.utils.av_reader import AVReader |
|
from latentsync.utils.util import gather_video_paths_recursively |
|
|
|
|
|
def remove_broken_video(video_path): |
|
try: |
|
AVReader(video_path) |
|
except Exception: |
|
os.remove(video_path) |
|
|
|
|
|
def remove_broken_videos_multiprocessing(input_dir, num_workers): |
|
video_paths = gather_video_paths_recursively(input_dir) |
|
|
|
print("Removing broken videos...") |
|
with Pool(num_workers) as pool: |
|
for _ in tqdm.tqdm(pool.imap_unordered(remove_broken_video, video_paths), total=len(video_paths)): |
|
pass |
|
|
|
|
|
if __name__ == "__main__": |
|
input_dir = "/mnt/bn/maliva-gen-ai-v2/chunyu.li/multilingual/affine_transformed" |
|
num_workers = 50 |
|
|
|
remove_broken_videos_multiprocessing(input_dir, num_workers) |
|
|