Aconteceu-me muitas vezes que eu poderia acabar em arquivos de vídeo corrompidos:
- vídeo baixado de fontes oficiais, mas com torrent e, por algum motivo, nem todas as peças existem em .mkv, .ts ou .mp4
- registros no formato .ts onde, em um determinado momento, os dados estão ausentes
- copiou vídeos de um disco rígido antigo com setores danificados
Quando reproduzo esses vídeos com o VLC ou outros players, eles são reproduzidos até um certo ponto e, em seguida, saem instantaneamente. Às vezes, posso tentar pular a parte ruim, mas poderia encontrar outro setor ruim e ter um recomeço de novo.
Questão é:
Posso corrigir esses problemas (suponho que o fluxo e os quadros-chave estejam relacionados) com o ffmpeg e talvez na forma de cópia -c, para que eu não tenha que recomprimir tudo?
O que eu quero alcançar é um vídeo completo, onde as partes ausentes são ignoradas. Prefiro uma falha do que travar meus vídeos.
Respostas:
Se partes do arquivo residem em setores fisicamente ruins ou por qualquer motivo, o SO não pode servir o arquivo inteiro para o FFmpeg, então naturalmente o FFmpeg não pode fazer nada sobre isso. Você deve obter um utilitário que possa ignorar essas partes e gravar as partes recuperáveis em um novo arquivo, como o ddrescue .
Agora, se o protocolo do arquivo não for a causa dos erros, você pode tentar
fonte
-c copy
. Surpreendente que não funcione durante a recodificação.Invalid data found when processing input
- e o ffmpeg desiste.Na busca de uma resposta melhor, uma maneira possível poderia ser:
No entanto, tenho certeza de que existem algumas opções extras que podem tornar o resultado ainda melhor.
fonte