anthwlock / untrunc

Restore a truncated mp4/mov. Improved version of ponchio/untrunc
GNU General Public License v2.0
1.9k stars 182 forks source link

Latest Build of Windows isn't working #27

Closed Prakash19921206 closed 5 years ago

Prakash19921206 commented 5 years ago

Hi i downloaded latest windows build, it showing below error message when i tried to fix a corrupt file

Info: version '25004ba' using ffmpeg '3.3.4' Info: reading working.mp4 Info: parsing healthy moov atom ... Info: avcC got decoded Info: searching start of mdat ... invalid atom length: -8

if i run untrunc.exe -vv working.mp4 video.mp4, this is output i get if i run untrunc.exe -vv working.mp4 video.mp4, this is the output

Working mp4 file size is 84mb, corrupt mp4 file size is 176mb. i get same above message if i build untrunc from source with below command

g++ -o untrunc -I./libav-12.3 *.cpp -L./libav-12.3/libavformat -lavformat -L./libav-12.3/libavcodec -lavcodec -L./libav-12.3/libavutil -lavutil -O3 -std=c++11

the same corrupt file was fixed in one of the old version of untrunc (as far as i remember, around 7 months ago)

the reason i'm trying to fix corrupt mp4 with latest untrunc is because in old version it doesn't fix files above 2GB

but in latest version its not fixing smaller files as well.. Here is the working video's codec details (taken from MediaInfo)

what might have gone wrong? I'm running windows 10 64bit

Thanks & Regards Prakash

anthwlock commented 5 years ago

Please provide a sample (first 5 MB) since I was not able to reproduce this. Btw, you can now build untrunc using just make. The logs you linked to are from your own build, right? Which platform? Does ponchio/untrunc work for the 176mb file? What does untrunc -f corrupt.mp4 output?

Prakash19921206 commented 5 years ago

Hi
sorry for my late reply. i'm running on windows 10 64bit i downloaded make from here when i execute make . in untrunc folder, i got below error

process_begin: CreateProcess(NULL, nproc, ...) failed. /usr/bin/bash: / 3: syntax error: operand expected (error token is "/ 3") make: Nothing to be done for `.'.

untrunc -f corrupt.mp4 shows nothing

C:\Users\user\Desktop\untrunc_x32>untrunc.exe -f corrupt_video.mp4 C:\Users\user\Desktop\untrunc_x32>

i saw that ponchio/untrunc has no update since 4 months, so that repo's code works and infact your repo's old code also works well..

The logs i linked is from own build (built on windows 10 64bit platform) but i see similar output in the prebuilt untrunc.exe from releases section in this repo

the video is not mine, so unable to share the video at the moment! i can share any other info.. Kindly let me know if you need any other info..

Thanks again with warm regards Prakash

anthwlock commented 5 years ago

Hmm.. untrunc -f is supposed to find any atom-header by "brute force". Maybe your system didn't show an exception correctly.. Please try the newest commit.

You could find out which commit introduced the bug by doing binary search via git. Please see here, section "Binary Search". This would be very helpful!

Prakash19921206 commented 5 years ago

@anthwlock, latest comment didn't work..no change in output. I have sent video file. Can you check once Thanks & Regards

anthwlock commented 5 years ago

It should work now. If untrunc -f corrupt.mp4 still shows nothing for you you can open another issue. For me it works as expected.

Prakash19921206 commented 5 years ago

i tried the latest release of untrunc (both 32 and 64it) now its fixing smaller files but for files above 2GB its still not working

untrunc.exe working.mp4 10_1100_120739.mp4 untrunc.exe -s working.mp4 10_1100_120739.mp4

above 2 commands produce same below output

Info: version '6faec02' using ffmpeg '3.3.4' Info: reading working.mp4 Info: parsing healthy moov atom ... Info: avcC got decoded Warning: start of mdat not found Info: reading mdat from truncated file ... Info: Found 0 packets ( mp4a: 0 avc1: 0 avc1-keyframes: 0 ) Info: Duration of mp4a: (0 ms) Info: Duration of avc1: (0 ms) Info: saving 10_1100_120739.mp4_fixed.mp4 Assertion failed!

Program: C:\Users\User\Desktop\untrunc_x64\untrunc.exe File: atom.cpp, Line 423

Expression: end - start == length_

It is generating fixed file but file length is 1.22kb

i'm using the version of untrunc from release and below are the results

i can see results for untrunc.exe -f working.mp4 but for untrunc.exe -f corrupt.mp4 there is no output yet

untrunc.exe -a 10_1100_120739.mp4

Info: version '6faec02' using ffmpeg '3.3.4' Info: reading 10_1100_120739.mp4 Info: parsing healthy moov atom ... Warning: negative atom length: -8 Missing movie header atom

here is the output for untrunc.exe -vv working.mp4 10_1100_120739.mp4

is it not fixing because there is no audio in corrupt video?

anthwlock commented 5 years ago

Does the recovery work now?

i can see results for untrunc.exe -f working.mp4 but for untrunc.exe -f corrupt.mp4 there is no output yet

Mysterious.. Which one is 'corrupt.mp4'? You don't confuse '-f' with '-a' right?

Prakash19921206 commented 5 years ago

Thanks for the update now its working for 2GB + files with latest update it also started to show result for untrunc -f corrupt.mp4

with warm regards, Prakash