Boas notícias, temos um teste relativamente rápido para arquivos MKV e AVI válidos.
Como posso verificar a integridade de um arquivo de vídeo (avi, mpeg, mp4…)?
You can use a feature in ffmpeg video converter: if you will specify it to recode video to nothing it will just read input file and report any errors that will appear. This is very fast process because video frames are just being read, checked and silently dropped.
Faça um loop em todos os arquivos avi e mkv com:
ffmpeg.exe -v error -i file.avi -f null - >error.log 2>&1
Exemplo de loop para todos os arquivos em um diretório: ( add para / R usar recursão )
FOR %%c IN (*.mkv) DO ffmpeg.exe -v error -i %%c -f null - >error.log 2>&1
Informações do Windows For Loops
Editar Aqui está a versão bash do Linux que eu testei:
for c in *.mp4; do ffmpeg -v error -i $c -f null - >error.log 2>&1; done
Agora, o log de erros do grep para quais arquivos estão incorretos e os exclua. Eu não sei o que a saída parece, então você pode querer postar saída de exemplo para assistência com a última etapa ou dividida em outra pergunta.
Exemplo de saída com arquivo corrompido (cortado do final do arquivo), os erros podem variar significativamente:
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x161a180] moov atom not found
video-head.mp4: Invalid data found when processing input