<p><a href="https://github.com/ponchio/untrunc" rel="nofollow">Untrunc</a> may be able to help.  </p>

<p>It's a Linux based command line utility that will restore lost MOOV sections.  Using it currently requires libav and a C++ build environment, though instructions are provided to do the build.  After it is built, you call it via the command line and just provide the path to a working video from the same phone, the broken video and it will write out a new file that should hopefully work.</p>

CC BY-SA 3.0
2016-07-01T13:38:32.093Z
Can you add some more detail about how this tool would be useful/used?
AJ Henderson
CC BY-SA 3.0
2016-07-04T13:03:24.863Z
@AJ Henderson This tool solves the problem
CarryFlag
CC BY-SA 3.0
2016-07-04T14:09:30.193Z
yes, but how do you use it?  Generally when a tool is the answer, explaining how to use the tool to solve the problem is preferred.
AJ Henderson
CC BY-SA 3.0
2016-07-04T14:12:24.677Z
@AJ Henderson I need to copy the documentation from github?
CarryFlag
CC BY-SA 3.0
2016-07-04T14:42:25.440Z
Ok, I went ahead and made the alteration.  I hope that makes it more clear.  Sorry about the confusion, I moderate 3 different sites, so I didn't actually have a chance to look more in depth at the particular answer until clarification was needed.  Basically, we just don't want people to have to click through multiple answers to find the best one, so the key pieces to determining which answer is best for a particular user should be in the answer itself, when possible.  Hope that makes sense.
AJ Henderson
CC BY-SA 4.0
2019-10-22T19:10:08.353Z
I've experimented with `untrunc` — or, rather, [the fork done by anthwlock](https://github.com/anthwlock/untrunc) — but it fails when it cannot find a `moov` atom or a `mvhd` child atom, which is exactly what I need to fix a broken MOV...
Gwyneth Llewelyn
CC BY-SA 3.0
2016-07-01T09:14:35.957Z
2016-07-04T14:40:08.317Z
2016-07-04T14:40:08.317Z
CarryFlag
<p>I have an app which records mp4. Some videos are fine and some corrupt. But even the corrupt ones are huge in size which I conclude have data.However, I have tried ffmpg, avconv and media info. I am pasting media info from both working and corr ones. How do I recover the corrupt video ?</p>

<p><strong>Possible solution</strong>:
I found this webpage (look at the Incomplete files - or not finalised  section). I am guessing this is one of the issues that while recording my phone would have died ? Anyway to recover this ? If you notice in the ffmpeg output <strong>only</strong> for corrupt video that the video stream is <strong>not</strong> detected.I do not know how to do this on ubuntu.</p>

<p><a href="http://www.cnwrecovery.com/html/3gp_recovery.html" rel="nofollow">http://www.cnwrecovery.com/html/3gp_recovery.html</a></p>

<p>Corrupt:</p>

<pre><code>mediainfo cor.mp4 
General
Complete name                            : cor.mp4
File size                                : 2.91 MiB
</code></pre>

<p>Working:</p>

<pre><code>mediainfo ../wo1.mp4
General
Complete name                            : ../wo1.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom
File size                                : 150 KiB
Duration                                 : 334ms
Overall bit rate                         : 3 689 Kbps
Encoded date                             : UTC 2016-01-12 18:31:21
Tagged date                              : UTC 2016-01-12 18:31:21

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Baseline@L3.0
Format settings, CABAC                   : No
Format settings, ReFrames                : 1 frame
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 334ms
Bit rate                                 : 3 659 Kbps
Width                                    : 720 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 3:2
Rotation                                 : 90°
Frame rate mode                          : Variable
Frame rate                               : 29.970 fps
Minimum frame rate                       : 28.911 fps
Maximum frame rate                       : 31.110 fps
Standard                                 : NTSC
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.353
Stream size                              : 149 KiB (99%)
Title                                    : VideoHandle
Language                                 : English
Encoded date                             : UTC 2016-01-12 18:31:21
Tagged date                              : UTC 2016-01-12 18:31:21

Audio
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 320ms
Source duration                          : 597ms
Source_Duration_FirstFrame               : 277ms
Bit rate mode                            : Constant
Bit rate                                 : 4 125 bps
Nominal bit rate                         : 128 Kbps
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 48.0 KHz
Compression mode                         : Lossy
Stream size                              : 165 Bytes (0%)
Source stream size                       : 165 Bytes (0%)
Title                                    : SoundHandle
Language                                 : English
Encoded date                             : UTC 2016-01-12 18:31:21
Tagged date                              : UTC 2016-01-12 18:31:21
mdhd_Duration                            : 320
</code></pre>

<p>Working ffmpeg:</p>

<pre><code>ffmpeg -i ../wo1.mp4
ffmpeg version 2.5.10-0ubuntu0.15.04.1 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
  configuration: --prefix=/usr --extra-version=0ubuntu0.15.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libwavpack --enable-libwebp --enable-libxvid --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libvpx --enable-libx264 --enable-libsoxr --enable-gnutls --enable-openal --enable-libopencv --enable-librtmp --enable-libx265
  libavutil      54. 15.100 / 54. 15.100
  libavcodec     56. 13.100 / 56. 13.100
  libavformat    56. 15.102 / 56. 15.102
  libavdevice    56.  3.100 / 56.  3.100
  libavfilter     5.  2.103 /  5.  2.103
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../wo1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: isom3gp4
    creation_time   : 2016-01-12 18:31:21
  Duration: 00:00:00.33, start: 0.000000, bitrate: 3688 kb/s
    Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 720x480, 3658 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      rotate          : 90
      creation_time   : 2016-01-12 18:31:21
      handler_name    : VideoHandle
    Side data:
      displaymatrix: rotation of -90.00 degrees
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      creation_time   : 2016-01-12 18:31:21
      handler_name    : SoundHandle
At least one output file must be specified
</code></pre>

<p>Corrupt ffmpeg</p>

<pre><code>ffmpeg -i cor.mp4 
ffmpeg version 2.5.10-0ubuntu0.15.04.1 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
  configuration: --prefix=/usr --extra-version=0ubuntu0.15.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libwavpack --enable-libwebp --enable-libxvid --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libvpx --enable-libx264 --enable-libsoxr --enable-gnutls --enable-openal --enable-libopencv --enable-librtmp --enable-libx265
  libavutil      54. 15.100 / 54. 15.100
  libavcodec     56. 13.100 / 56. 13.100
  libavformat    56. 15.102 / 56. 15.102
  libavdevice    56.  3.100 / 56.  3.100
  libavfilter     5.  2.103 /  5.  2.103
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
[adp @ 0x16967e0] Format adp detected only with low score of 25, misdetection possible!
Input #0, adp, from 'cor.mp4':
  Duration: 00:00:55.61, start: 0.000000, bitrate: 438 kb/s
    Stream #0:0: Audio: adpcm_dtk, 48000 Hz, stereo, s16p
At least one output file must be specified
</code></pre>

<p><strong>Update</strong>
I will put my progress here as this thread can potentially help someone else also</p>

<p>201604270700:
ffmpeg is not able to get the video stream from corrupt file
figuring out right codec -- look at links</p>

<pre><code>    ffmpeg -i cor.mp4 -vcodec copy -an -bsf:v h264_mp4toannexb -loglevel 56 test1.h264
ffmpeg version 2.5.10-0ubuntu0.15.04.1 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
  configuration: --prefix=/usr --extra-version=0ubuntu0.15.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libwavpack --enable-libwebp --enable-libxvid --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libvpx --enable-libx264 --enable-libsoxr --enable-gnutls --enable-openal --enable-libopencv --enable-librtmp --enable-libx265
  libavutil      54. 15.100 / 54. 15.100
  libavcodec     56. 13.100 / 56. 13.100
  libavformat    56. 15.102 / 56. 15.102
  libavdevice    56.  3.100 / 56.  3.100
  libavfilter     5.  2.103 /  5.  2.103
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Splitting the commandline.
Reading option '-i' ... matched as input file with argument 'cor.mp4'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-an' ... matched as option 'an' (disable audio) with argument '1'.
Reading option '-bsf:v' ... matched as option 'bsf' (A comma-separated list of bitstream filters) with argument 'h264_mp4toannexb'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '56'.
Reading option 'test1.h264' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument 56.
Successfully parsed a group of options.
Parsing a group of options: input file cor.mp4.
Successfully parsed a group of options.
Opening an input file: cor.mp4.
[adp @ 0x2672d60] Format adp detected only with low score of 25, misdetection possible!
[adp @ 0x2672d60] Before avformat_find_stream_info() pos: 0 bytes read:1048576 seeks:0
[adp @ 0x2672d60] All info found
[adp @ 0x2672d60] After avformat_find_stream_info() pos: 51200 bytes read:1048576 seeks:0 frames:50
Input #0, adp, from 'cor.mp4':
  Duration: 00:00:55.61, start: 0.000000, bitrate: 438 kb/s
    Stream #0:0, 50, 1/48000: Audio: adpcm_dtk, 48000 Hz, stereo, s16p
Successfully opened the file.
Parsing a group of options: output file test1.h264.
Applying option vcodec (force video codec ('copy' to copy stream)) with argument copy.
Applying option an (disable audio) with argument 1.
Applying option bsf:v (A comma-separated list of bitstream filters) with argument h264_mp4toannexb.
Successfully parsed a group of options.
Opening an output file: test1.h264.
File 'test1.h264' already exists. Overwrite ? [y/N] y
Successfully opened the file.
Output #0, h264, to 'test1.h264':
Output file #0 does not contain any stream
[AVIOContext @ 0x2673da0] Statistics: 0 seeks, 0 writeouts
[AVIOContext @ 0x2672320] Statistics: 1048576 bytes read, 0 seeks
</code></pre>

CC BY-SA 3.0
2016-04-27T14:21:17.407Z
Try [this](http://stackoverflow.com/a/35563002/5726027).
Gyan
CC BY-SA 3.0
2016-05-02T03:31:31.430Z
recover_mp4_to_h264 does not work. I ran it on the correct video. It outputted 2 files which it will then consume to run the incorrect video. And after running an incorrect video it just outputted a 25kb file. Any other suggestions ? Is there a hex editor which can fix mp4 etc ?
analyst
CC BY-SA 4.0
2020-04-22T23:24:17.917Z
@analyst Ive just found [mp4fixer](https://github.com/bookkojot/mp4fixer), maybe you can give it a try.
SebMa
<ffmpeg>
how to recover corrupt mp4 from samsung note 3
analyst
# how to recover corrupt mp4 from samsung note 3

(Asked by: username_0 on 2016-04-27)

I have an app which records mp4. Some videos are fine and some corrupt. But even the corrupt ones are huge in size which I conclude have data.However, I have tried ffmpg, avconv and media info. I am pasting media info from both working and corr ones. How do I recover the corrupt video ?
Possible solution:
I found this webpage (look at the Incomplete files - or not finalised  section). I am guessing this is one of the issues that while recording my phone would have died ? Anyway to recover this ? If you notice in the ffmpeg output only for corrupt video that the video stream is not detected.I do not know how to do this on ubuntu.
http://www.cnwrecovery.com/html/3gp_recovery.html
Corrupt:
mediainfo cor.mp4 
General
Complete name                            : cor.mp4
File size                                : 2.91 MiB

Working:
mediainfo ../wo1.mp4
General
Complete name                            : ../wo1.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom
File size                                : 150 KiB
Duration                                 : 334ms
Overall bit rate                         : 3 689 Kbps
Encoded date                             : UTC 2016-01-12 18:31:21
Tagged date                              : UTC 2016-01-12 18:31:21

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Baseline@L3.0
Format settings, CABAC                   : No
Format settings, ReFrames                : 1 frame
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 334ms
Bit rate                                 : 3 659 Kbps
Width                                    : 720 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 3:2
Rotation                                 : 90°
Frame rate mode                          : Variable
Frame rate                               : 29.970 fps
Minimum frame rate                       : 28.911 fps
Maximum frame rate                       : 31.110 fps
Standard                                 : NTSC
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.353
Stream size                              : 149 KiB (99%)
Title                                    : VideoHandle
Language                                 : English
Encoded date                             : UTC 2016-01-12 18:31:21
Tagged date                              : UTC 2016-01-12 18:31:21

Audio
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 320ms
Source duration                          : 597ms
Source_Duration_FirstFrame               : 277ms
Bit rate mode                            : Constant
Bit rate                                 : 4 125 bps
Nominal bit rate                         : 128 Kbps
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 48.0 KHz
Compression mode                         : Lossy
Stream size                              : 165 Bytes (0%)
Source stream size                       : 165 Bytes (0%)
Title                                    : SoundHandle
Language                                 : English
Encoded date                             : UTC 2016-01-12 18:31:21
Tagged date                              : UTC 2016-01-12 18:31:21
mdhd_Duration                            : 320

Working ffmpeg:
ffmpeg -i ../wo1.mp4
ffmpeg version 2.5.10-0ubuntu0.15.04.1 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
  configuration: --prefix=/usr --extra-version=0ubuntu0.15.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libwavpack --enable-libwebp --enable-libxvid --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libvpx --enable-libx264 --enable-libsoxr --enable-gnutls --enable-openal --enable-libopencv --enable-librtmp --enable-libx265
  libavutil      54. 15.100 / 54. 15.100
  libavcodec     56. 13.100 / 56. 13.100
  libavformat    56. 15.102 / 56. 15.102
  libavdevice    56.  3.100 / 56.  3.100
  libavfilter     5.  2.103 /  5.  2.103
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../wo1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: isom3gp4
    creation_time   : 2016-01-12 18:31:21
  Duration: 00:00:00.33, start: 0.000000, bitrate: 3688 kb/s
    Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 720x480, 3658 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      rotate          : 90
      creation_time   : 2016-01-12 18:31:21
      handler_name    : VideoHandle
    Side data:
      displaymatrix: rotation of -90.00 degrees
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      creation_time   : 2016-01-12 18:31:21
      handler_name    : SoundHandle
At least one output file must be specified

Corrupt ffmpeg
ffmpeg -i cor.mp4 
ffmpeg version 2.5.10-0ubuntu0.15.04.1 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
  configuration: --prefix=/usr --extra-version=0ubuntu0.15.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libwavpack --enable-libwebp --enable-libxvid --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libvpx --enable-libx264 --enable-libsoxr --enable-gnutls --enable-openal --enable-libopencv --enable-librtmp --enable-libx265
  libavutil      54. 15.100 / 54. 15.100
  libavcodec     56. 13.100 / 56. 13.100
  libavformat    56. 15.102 / 56. 15.102
  libavdevice    56.  3.100 / 56.  3.100
  libavfilter     5.  2.103 /  5.  2.103
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
[adp @ 0x16967e0] Format adp detected only with low score of 25, misdetection possible!
Input #0, adp, from 'cor.mp4':
  Duration: 00:00:55.61, start: 0.000000, bitrate: 438 kb/s
    Stream #0:0: Audio: adpcm_dtk, 48000 Hz, stereo, s16p
At least one output file must be specified

Update
I will put my progress here as this thread can potentially help someone else also
201604270700:
ffmpeg is not able to get the video stream from corrupt file
figuring out right codec -- look at links
    ffmpeg -i cor.mp4 -vcodec copy -an -bsf:v h264_mp4toannexb -loglevel 56 test1.h264
ffmpeg version 2.5.10-0ubuntu0.15.04.1 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
  configuration: --prefix=/usr --extra-version=0ubuntu0.15.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libwavpack --enable-libwebp --enable-libxvid --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libvpx --enable-libx264 --enable-libsoxr --enable-gnutls --enable-openal --enable-libopencv --enable-librtmp --enable-libx265
  libavutil      54. 15.100 / 54. 15.100
  libavcodec     56. 13.100 / 56. 13.100
  libavformat    56. 15.102 / 56. 15.102
  libavdevice    56.  3.100 / 56.  3.100
  libavfilter     5.  2.103 /  5.  2.103
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Splitting the commandline.
Reading option '-i' ... matched as input file with argument 'cor.mp4'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-an' ... matched as option 'an' (disable audio) with argument '1'.
Reading option '-bsf:v' ... matched as option 'bsf' (A comma-separated list of bitstream filters) with argument 'h264_mp4toannexb'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '56'.
Reading option 'test1.h264' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument 56.
Successfully parsed a group of options.
Parsing a group of options: input file cor.mp4.
Successfully parsed a group of options.
Opening an input file: cor.mp4.
[adp @ 0x2672d60] Format adp detected only with low score of 25, misdetection possible!
[adp @ 0x2672d60] Before avformat_find_stream_info() pos: 0 bytes read:1048576 seeks:0
[adp @ 0x2672d60] All info found
[adp @ 0x2672d60] After avformat_find_stream_info() pos: 51200 bytes read:1048576 seeks:0 frames:50
Input #0, adp, from 'cor.mp4':
  Duration: 00:00:55.61, start: 0.000000, bitrate: 438 kb/s
    Stream #0:0, 50, 1/48000: Audio: adpcm_dtk, 48000 Hz, stereo, s16p
Successfully opened the file.
Parsing a group of options: output file test1.h264.
Applying option vcodec (force video codec ('copy' to copy stream)) with argument copy.
Applying option an (disable audio) with argument 1.
Applying option bsf:v (A comma-separated list of bitstream filters) with argument h264_mp4toannexb.
Successfully parsed a group of options.
Opening an output file: test1.h264.
File 'test1.h264' already exists. Overwrite ? [y/N] y
Successfully opened the file.
Output #0, h264, to 'test1.h264':
Output file #0 does not contain any stream
[AVIOContext @ 0x2673da0] Statistics: 0 seeks, 0 writeouts
[AVIOContext @ 0x2672320] Statistics: 1048576 bytes read, 0 seeks

**Tags:** ffmpeg

> **Comments:**
> **username_1**: Try [this](http://stackoverflow.com/a/35563002/5726027).  
> **username_0**: recover_mp4_to_h264 does not work. I ran it on the correct video. It outputted 2 files which it will then consume to run the incorrect video. And after running an incorrect video it just outputted a 25kb file. Any other suggestions ? Is there a hex editor which can fix mp4 etc ?  
> **username_2**: @username_0 Ive just found [mp4fixer](https://github.com/bookkojot/mp4fixer), maybe you can give it a try.  

---

## 1 answers

### Answer by username_3 on 2016-07-01. Score: 3

[Untrunc](https://github.com/ponchio/untrunc) may be able to help.

It's a Linux based command line utility that will restore lost MOOV sections. Using it currently requires libav and a C++ build environment, though instructions are provided to do the build. After it is built, you call it via the command line and just provide the path to a working video from the same phone, the broken video and it will write out a new file that should hopefully work.

> **Comments:**
> **username_4**: Can you add some more detail about how this tool would be useful/used?  
> **username_3**: @username_4 This tool solves the problem  
> **username_4**: yes, but how do you use it?  Generally when a tool is the answer, explaining how to use the tool to solve the problem is preferred.  
> **username_3**: @username_4 I need to copy the documentation from github?  
> **username_4**: Ok, I went ahead and made the alteration.  I hope that makes it more clear.  Sorry about the confusion, I moderate 3 different sites, so I didn't actually have a chance to look more in depth at the particular answer until clarification was needed.  Basically, we just don't want people to have to click through multiple answers to find the best one, so the key pieces to determining which answer is best for a particular user should be in the answer itself, when possible.  Hope that makes sense.  
> **username_5**: I've experimented with `untrunc` — or, rather, [the fork done by anthwlock](https://github.com/anthwlock/untrunc) — but it fails when it cannot find a `moov` atom or a `mvhd` child atom, which is exactly what I need to fix a broken MOV...  

---

