I made a recording with

ffmpeg -f alsa -ac 2 -i plughw:0,0  /tmp/audio.mp4

I then moved /tmp/audio.mp4 to another directory (/root/audio.mp4) without stopping ffmpeg leading to a broken .mp4 file:

ffplay /root/audio.mp4
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f3524000b80] moov atom not found
audio.mp4: Invalid data found when processing input

How to recover and read my .mp4 file?


You can try and use Untrunc to fix the file.

Restore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video.

you may need to compile it from source, but there is another option to use a Docker container and bind the folder with the file into the container and fix it that way.

You can use the included Dockerfile to build and execute the package as a container

git clone https://github.com/ponchio/untrunc.git
cd untrunc
docker build -t untrunc .
docker run -v ~/Desktop/:/files untrunc /files/filea /files/fileb

Solution provided here (https://github.com/ponchio/untrunc) solved my problem! I run it as a Docker container. Here my steps:

  • Install Docker (in case you don't have it yet)

  • Download the file (in an empty directory) https://raw.githubusercontent.com/ponchio/untrunc/master/Dockerfile

  • On the same directory of the Dockerfile, run:

      docker build -t untrunc .
  • That will build a local docker image - it takes time.

  • Now you have to provide a sample file from the same origin (in my case the same camera) and the corrupted file you wanna fix. E.g.:

      docker run -v /path/to/files/:/files untrunc /files/working_video /files/broken_video
  • Doesn't work. Maybe because my videos have different length? I created one video from the other but had to cancel the video generation because it took to long. I guess the canceling while creating the video was the problem. can untrunc fix that too? – mcExchange Oct 23 '20 at 8:31
  • Hi @mcExchange, If you stop the recovering process the same thing will happen to the fixed video.. let it run until the end. – Alexandre Andrade Dec 27 '20 at 10:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.