File Repair – How to Repair a Broken 3GP/MP4 File Without a Moov Header

.mp43gpaacaudioaudio recording

I was recording audio two days ago and my phone suddenly died while doing so. I used MP4repair and a short clip of sound could be heard and they would be charging $80 to recover it. I thought it was too much and I don't even own a credit card, so I ruled out that possibility.

Apparently, the moov header is missing for this file. Is it possible to generate a moov header for this recording? Or better, is it possible to recover this file without having to pay those 80 Dollars?

So far I know that it is AAC audio inside a 3GP container.

Best Answer

If you have a Debian-based Linux, you can use untrunc. Open up a terminal window and run the following commands, one by one:

sudo apt-get install libavformat-dev libavcodec-dev libavutil-dev
cd ~
wget https://github.com/ponchio/untrunc/archive/master.zip
unzip master.zip
cd untrunc-master
g++ -o untrunc file.cpp main.cpp track.cpp atom.cpp mp4.cpp -L/usr/local/lib -lavformat -lavcodec -lavutil
chmod +x untrunc

Now, you need:

  • the broken file
  • a correct file – you just need a working file that you obtained from the same device

Put both into the untrunc-master directory. Then, run:

./untrunc correct.3gp broken.3gp

This will output a bunch of info, and it should give you a broken.3gp_fixed.mp4 output file.