40

I took a video from my Android phone (Sony Xperia P, if you need to know), and before I could stop recording it, the phone memory got full and the phone got hanged too. I rebooted the phone, the video was there, but I couldn't play it from any media player on Android. It's in mp4 format.

So I tried to open it on PC and Mac with different video player, like VLC, quick Time, Windows Media Player etc., but none of them can play it. I know that the video is corrupted, but I believe it's repairable, since it got more than a GB in size. Is there anything that I can try to repair the video file? The video is really important.

2 Answers 2

30

This is an old question, but I just ran into the same situation and I figured I would post the solution that worked for me.

When you see the message "moov atom not found", that typically means that whatever was creating the video was not able to write terminal metadata that contains information about things like the codecs used in the video and so forth. Without this "moov atom", most players will reject the video.

If you have another video that was generated by the same device, you can use the untrunc program to generate a new moov atom that will in most cases render the file playable.

You will need to compile the untrunc program yourself. I built it in an Ubuntu 12.04 docker container, and needed to install the following prerequisites to get it to build:

sudo apt-get install libavformat-dev libavcodec-dev \
  libavutil-dev libqt4-dev make g++ libz-dev
5
  • It supposedly it supports files bigger then 1GB. However my input was >1GB and the output was just below 1GB and missing the end. The following tool helped to restore more video: github.com/bookkojot/mp4fixer
    – jakob-r
    Jan 28, 2020 at 14:35
  • Your prerequisites lack something: On Ubuntu 20.04 I get libqt4-dev has no installation candidate.
    – rubo77
    Jan 27, 2021 at 9:05
  • But I used the docker container like described in their Readme now, and that worked fine!
    – rubo77
    Jan 27, 2021 at 9:05
  • 5
    Be advised that in case the original ponchio/untrunc doesn't work for you to also try the newer logging branch in that repository and also try this fork: anthwlock/untrunc
    – rubo77
    Jan 27, 2021 at 9:18
  • I had to install yasm as well in order to compile libavformat Oct 5, 2021 at 9:51
24

If you have ffmpeg, from the command-line you can try:

ffmpeg -i input.mp4 -c copy output.mp4

If the problem is just with the container, this will fix it.

If that doesn't work, please post the complete terminal message, as it could give a clue as to how to fix the file.

12
  • Sorry, I forgot about that video. I'll try your method tonight. Can you let me know of any link from where I can get to know how to install ffmpeg. They just give zip or tar archives. Thanks anyways
    – noob
    Jan 31, 2013 at 9:32
  • 18
    Sorry for the late reply. This is the error I am getting while using ffmpeg command - [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f88f9018e00] moov atom not found input.mp4: Invalid data found when processing input
    – noob
    Mar 17, 2013 at 20:31
  • 2
    did you ever resolve this? getting the same problem. Think it was caused by more or less the same thing too
    – Horse
    Oct 8, 2014 at 16:19
  • 1
    I got the same problem and the same output. I could resolve it with this: grauonline.de/cms2/?page_id=5 but you have to pay for it if you want the other half of the video. Is there any other software that somebody can suggest to fix my mp4 file?
    – VaTo
    Jun 6, 2015 at 5:30
  • 2
    Have you tried recover_mp4_to_h264? stackoverflow.com/questions/23202611/…
    – Mint
    Sep 12, 2016 at 3:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .