Os arquivos de vídeo ficam corrompidos quando recuperados com o photorec (a mesma coisa com o testdisk) para que eles não sejam reproduzidos, mesmo que o fluxo de vídeo esteja lá. Eu tive o mesmo problema com vídeos excluídos acidentalmente de uma câmera Canon EOS. Gastei algum tempo tentando concatenar arquivos, depois gastei idades compilando untrunc mas não consegui nada que pudesse ser reproduzido com nenhum dos métodos.
Então eu encontrei um script perl, mp4fixer que corrige arquivos de vídeo corrompidos.
E funcionou!
Veja como:
-
Assim como o untrunc, o mp4fixer funciona comparando os arquivos, então você precisará de um arquivo de vídeo funcional, da mesma câmera, com as mesmas configurações e tudo o mais próximo possível do arquivo de vídeo corrompido.
-
Coloque os dois arquivos de vídeo em uma pasta, abra a pasta em um terminal e digite os seguintes comandos:
wget https://github.com/bookkojot/mp4fixer/archive/master.zip
unzip master.zip
mp4fixer-master/fixer.pl good-video.mov bad-video.mov fixed
Na última linha, substitua good-video
e bad-video
pelos nomes dos seus arquivos e o último argumento (aqui fixed
) pode ser qualquer palavra de sua escolha e será usado como um prefixo para os arquivos gerados .
-
Após o script ter feito a sua coisa, sua pasta será inundada por arquivos prefixados. Procure o que termina com *-out-video.h264
.
-
Você já pode reproduzir esse arquivo usando o VLC, mas no meu caso o framerate estava em todo lugar, então eu o converti para MP4 usando o HandBrake e é isso, meus vídeos agora estão jogando muito bem!
nota: só percebendo agora, não precisava de áudio no meu caso, então esqueci o fato de que o mp4fixer restaura o áudio como um arquivo .raw separado. Há mais informações sobre o som na página de readme . Além disso, o áudio bruto foi reproduzido no Audacity ( File > Import > Raw Data
), mas na velocidade errada.