This question has been asked several times on this forum, with the accepted answer using ffmpeg to assess the integrity of the file with these example commands:
# scan a single file
ffmpeg.exe -v error -i C:\to\path\file.avi -f null - >error.log 2>&1
# batch scan
find C:\to\path\ -name "*.mp4" -exec sh -c "ffmpeg -v error -i '{}' -map 0:1 -f null - 2>'{}.log'" \;
The Problem:
The above commands work without issue, taking anywhere between 2-20 mins to assess a single video file. But when running the above batch command on a large number of video files (1000+) (assuming an average of 5 minutes per file), the process could take over a week to finish.
The Objective:
Looking for a faster solution to verify integrity of my files. Either to modify the ffmpeg
command, or to use as a different binary entirely. Anything is accepted as long as I can run the new command in the terminal/bash. Would like to get the processing time down from a few days, to a few hours.
References:
https://superuser.com/questions/100288/how-can-i-check-the-integrity-of-a-video-file-avi-mpeg-mp4
Quickly check the integrity of video files inside a directory with ffmpeg
How can I tell if a video file is corrupted? FFmpeg?
https://gist.github.com/ridvanaltun/8880ab207e5edc92a58608d466095dec
Update
I never did find a "quick" way of scanning the video files. I just accepted that for the sake of thoroughness it will take some time. However, I made a GUI Python program that may benefit others: