|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|