ffmpeg
é uma ferramenta de agnóstico do SO que é capaz de determinar se um arquivo de vídeo foi completamente baixado. O comando abaixo instrui ffmpeg
para ler o vídeo de entrada e codificar o vídeo para nada. Durante o processo de codificação, quaisquer erros, como quadros ausentes, são enviados para o test.log.
ffmpeg -v error -i FILENAME.mp4 -f null - 2>test.log
Se um arquivo de vídeo não for totalmente baixado, haverá muitas linhas no arquivo test.log. Por exemplo, 0,1 MB ausentes de um arquivo de vídeo produziram 71 linhas de erros. Se o vídeo tiver sido totalmente baixado e não tiver sido corrompido, nenhum erro será encontrado e nenhuma linha será impressa no test.log.
Editar
No exemplo que dei acima, testei o arquivo inteiro porque o vídeo de teste que baixei era um torrent, que pode ter partes faltantes em todo o arquivo.
Adicionar -sseof -60
à lista de argumentos verificará os últimos 60 segundos do arquivo, que é consideravelmente mais rápido.
ffmpeg -v error -sseof -60 -i FILENAME.mp4 -f null - 2>test.log
Você precisará de uma versão mais nova do ffmpeg, o 2.8 não possui o sinalizador sseof, então usei o 3.0.