Вопрос

I've got two very large AVI files that are supposedly backup copies of one another. They differ in exactly one bit (yes bit, not even a byte):

Windows "fc /b" reports the following as the only difference:

3759B86F: B1 B3

ffmpeg -v error reports same errors on both. Otherwise they are:

 Duration: 00:33:33.17, start: 0.000000, bitrate: 30317 kb/s
   Stream #0:0: Video: dvvideo (dvsd / 0x64737664), yuv411p, 720x480 [SAR 8:9 DAR 4:3],     29.97 tbr, 29.97 tbn, 29.97 tbc
   Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 2 channels, s16, 1536 kb/s

They are huge (7,629,216,528 bytes - >7 GB) and I want to keep only the right one... but can't figure out which one it is...

EDIT I lied. ffmpeg reports same KINDS of errors BUT at different locations (03D... for one file and 03C... for another):

...>ffmpeg -v error -i file1.avi -f null -
[dvvideo @ 03D108E0] AC EOB marker is absent pos=64
    Last message repeated 2 times
    Last message repeated 2 times
[dvvideo @ 03D108E0] AC EOB marker is absent pos=67
[dvvideo @ 03D108E0] AC EOB marker is absent pos=69
[dvvideo @ 03D108E0] AC EOB marker is absent pos=64
    Last message repeated 1 times

...>ffmpeg -v error -i file2.avi -f null -
[dvvideo @ 03C108E0] AC EOB marker is absent pos=64
    Last message repeated 2 times
    Last message repeated 3 times
[dvvideo @ 03C108E0] AC EOB marker is absent pos=67
[dvvideo @ 03C108E0] AC EOB marker is absent pos=69
[dvvideo @ 03C108E0] AC EOB marker is absent pos=64
    Last message repeated 1 times

Note that the actual difference is at offset 3759b86f - not sure how that relates to ffmpeg locations but it seems to be well after them. On a side note, every time I run ffmpeg on the same file it reports different locations

EDIT 2 with more detail (-v verbose) ffmpeg reports that the error is at 00:26:11.64. The entire video is 00:33:33.17 and the one bit difference at ~12% of the length of the file. With CBR that would be at ~ minute 4.

Это было полезно?

Решение

OK... Found it. File 2 is better :) Here's how I did it.

  1. I used ffmpeg to extract raw audio from both files and compared them. They were equal.
  2. Then I extracted raw video from both files and compared those. They were different in that one bit.
  3. Knowing that the difference is at approx. minute 4, I extracted all frames from minute 3 to minute 5 of videos as individual frames (uncompressed format to make sure I maintain the difference). One frame at ~4:05 was different.
  4. The difference was almost invisible to the naked eye - had to compare the two frames in Photoshop first to see where it is before I could see what it was - a very slight green overcast in a small area.
  5. Picked the file that does not have that green overcast as better :)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top