7

I recorded two videos on a digital camera. Both videos were saved using identical codecs and settings.

The second video is corrupted, in some way, and I can't open with VLC or video-editing software. (The first video is ok).

I tried to convert video with "video to video" software that says:

#8636.3: [h264 @ 04E10060]AVC: nal size -1920576098
#8636.3: [h264 @ 04E10060]no frame!
#8636.5: [mov,mp4,m4a,3gp,3g2,mj2 @ 04EC4020]decoding for stream 0 failed
#8636.4: [mov,mp4,m4a,3gp,3g2,mj2 @ 04EC4020]Could not find codec parameters 
for stream 0 (Video: h264 (avc1 / 0x31637661), 1920x1080, 11987 kb/s): 
 unspecified pixel format
#8636.4: Consider increasing the value for the 'analyzeduration' and 
 'probesize' options

***File load error: C:\..\PICT0002.MP4: could not find codec parameters

Analyzing with Gspot, on videos (video corrupted on the right: PICT0002):

enter image description here

Can anyone suggest a tool or a method to repair the second video? The size is correct (3 GB), and when I try to open it with VLC, the length seems to be ok (40 min).

Theoretically: Should I change codec-metadata in the file to make it recognizable by software?

UPDATE

tried ffmpeg analysis. command: ffmpeg -analyzeduration 2000000000 -i PICT0002.mp4 -c:v libx264 -c:a copy PICT0002-fixed.mp4

response:

C:\Programmi\ffmpeg\bin>ffmpeg -analyzeduration 2000000000 -i PICT0002.mp4 - 
c:v libx264 -c:a copy PICT0002-fixed.mp4
ffmpeg version N-91398-gd08d4a8c73 Copyright (c) 2000-2018 the FFmpeg         
developers
   built with gcc 7.3.0 (GCC)
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable- 
   bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass 
   --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable- 
   libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg -- 
   enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr -- 
   enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack 
   --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 -- 
   enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable- 
   libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa 
   --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx -- 
   enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable- 
   nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
      libavutil      56. 18.102 / 56. 18.102
      libavcodec     58. 20.104 / 58. 20.104
      libavformat    58. 17.101 / 58. 17.101
      libavdevice    58.  4.101 / 58.  4.101
      libavfilter     7. 25.100 /  7. 25.100
      libswscale      5.  2.100 /  5.  2.100
      libswresample   3.  2.100 /  3.  2.100
      libpostproc    55.  2.100 / 55.  2.100
 [h264 @ 000002036235d380] Invalid NAL unit size (-1920576098 > 197632).
 [h264 @ 000002036235d380] Error splitting the input into NAL units.
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000002036234a300] decoding for stream 0 failed
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000002036234a300] Could not find codec 
 parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 1920x1080, 
 11987 kb/s): unspecified pixel format
 Consider increasing the value for the 'analyzeduration' and 'probesize' 
  options
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'PICT0002.mp4':
   Metadata:
   major_brand     : avc1
   minor_version   : 0
   compatible_brands: avc1isom
   creation_time   : 2021-06-30T08:32:50.000000Z
   Duration: 00:40:53.45, start: 0.000000, bitrate: 12122 kb/s
   Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), none, 1920x1080, 11987 
    kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc (default)
   Metadata:
     creation_time   : 2021-06-30T08:32:50.000000Z
     handler_name    :  Ambarella AVC
     encoder         : Ambarella AVC encoder
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
 Press [q] to stop, [?] for help
 [h264 @ 000002036234dd40] Invalid NAL unit size (-1920576098 > 197632).
 [h264 @ 000002036234dd40] Error splitting the input into NAL units.
 [h264 @ 0000020363f92300] Invalid NAL unit size (1565499804 > 10496).
 [h264 @ 0000020363f92300] Error splitting the input into NAL units.
 Error while decoding stream #0:0: Invalid data found when processing input
     Last message repeated one time
 Cannot determine the format of input stream 0:0 after EOF
 Error marking filters as finished
 Conversion failed!

So, the conversion failed.

Ramhound
  • 44,080
Marco
  • 91

2 Answers2

2

SOLUTION.

First of all, tank you to Ricardo Bohner. He refers to Video Repair Tool.

Going to that site, you'll find that this tool is not any more available, and you should subscribe to Restore Media.

In alternative you can go here. I followed instruction showed here.

Sadly I recovered only 30:00 mins of 40:00 mins of the video, but the recovered part is perfect.

Hope this can be usefull.

UPDATE: As explained by Riccardo Bonher (see below in comments), it's possible to use a trick (doubling mp4 lenght) and recover it by Repair Tool.

In this way I was able to repair all length of the corrupted-mp4. After doing this I was able to see video with VLC (video-reader)..

..but I was not still able to convert it by editing-softare (as VirtualDub, Video to Video etc.)

So, I used a combinated procedure: A) using Riccardo solution (as explained in comments) for recovreing whole video-length B) repassing recovered video by my original solution (recover-mp4-to-h264.zip), for making it correct and readable by common editing-softwares. Hope this can help people..

Marco
  • 91
1

Check out this tool: Video Repair Tool

It is not freeware but it repairs 50% of your video for free so you'll know if it works.

Check also this youtube video: https://www.youtube.com/watch?v=5QK3vizVIds