28

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.

18

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.

| improve this answer | |
  • 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 '13 at 9:32
  • 15
    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 '13 at 20:31
  • 1
    did you ever resolve this? getting the same problem. Think it was caused by more or less the same thing too – Horse Oct 8 '14 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 '15 at 5:30
  • 1
    Have you tried recover_mp4_to_h264? stackoverflow.com/questions/23202611/… – Mint Sep 12 '16 at 3:37
14

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
| improve this answer | |
  • 1
    Doesn't work for large (~1 GB) files. – Ken Sharp Apr 15 '17 at 21:04
  • 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 at 14:35

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