É possível reparar o arquivo mp4 ou m4v quebrado usando Untrunc .
Para este método, você precisa:
-
outro arquivo de vídeo que não está quebrado
-
uma instalação linux (eu usei o Ubuntu 12.04) e habilidade básica de usar uma linha de comando.
Isso é o que fazer:
-
Instale algumas bibliotecas de pré-requisitos com este comando:
sudo apt-get install libavformat-dev libavcodec-dev libavutil-dev
-
Faça o download do código-fonte do Untrunc no repositório do github:
wget https://github.com/ponchio/untrunc/archive/master.zip
-
Descompacte o código-fonte:
unzip master.zip
-
Entre no diretório em que foi descompactado:
cd untrunc-master
-
Compile o código-fonte usando este comando (toda a linha):
g++ -o untrunc file.cpp main.cpp track.cpp atom.cpp mp4.cpp -L/usr/local/lib -lavformat -lavcodec -lavutil
(você pode tentar pular esta etapa e usar o executável fornecido, mas não funcionou para mim)
-
Então você pode consertar o vídeo. Você precisa do vídeo quebrado e de um exemplo de vídeo em funcionamento.
Idealmente, o vídeo deve ser da mesma câmera & tenho a mesma resolução (a minha era, mas poderia funcionar sem). Além disso, se for pelo menos tão longo quanto o quebrado (de preferência aproximadamente o mesmo) isso pode ajudar.
Execute este comando na pasta onde você descompactou e compilou o Untrunc, mas substitua os bits / path / to / ... pelos seus 2 arquivos de vídeo:
./untrunc /path/to/working-video.m4v /path/to/broken-video.m4v
Em seguida, ele deve se desfazer e produzir um arquivo reproduzível chamado
broken-video_fixed.m4v
É isso mesmo que você terminou!
O VLC Media Player agora deve poder reproduzir o arquivo. No entanto, ele pode estar relatando informações incorretas sobre o tamanho (o Untrunc tenta adivinhar isso, mas nem sempre acerta). Para corrigir isso, tente recodificar o vídeo por meio de outro programa.
[Graças ao comentário do slhck sobre a sugestão de experimentar o Untrunc.]
[Muito obrigado a Federico Ponchio por codificar Untrunc em primeiro lugar, para resolver este problema exato.]