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

docker build -t untrunc
docker run -v ~/Desktop/:/files untrunc /files/filea /files/fileb
  • The Untrunc in the repository provided doesn't compile in Ubuntu 18.04 because of "track.cpp:57:11: fatal error: config.h: No such file or directory". But this fork do compile. github.com/anthwlock/untrunc – HD189733b Dec 20 '19 at 7:25

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 https://github.com/ponchio/untrunc/blob/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

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.