I back up my data to pairs of external hard drives, and recently (in the process of transferring the contents to larger external hard drives) found that some of the data between them has diverged. Several of them are video files.

I used this answer to use ffmpeg's ssim and psnr filters to find the differences between the two videos. Once I had a location, I loaded the tracks into kdenlive, applied the "difference" transition, and seeked to the area where the difference was.

However, no difference was to be seen! I even extracted the audio, and used audacity to compare differences, and still nothing.

The files are clearly different; ffmpeg shows that. But if I can't see any differences, I don't know which file to copy over the other file.

Any idea what I could be doing wrong? This seems too simple to fail.

  • The files are clearly different; ffmpeg shows that. --> how? – Gyan Oct 7 at 6:29
  • @Gyan: The ssim.log and psnr.log files, generated by the method described above. – ulatekh Oct 7 at 16:22
  • Why use audacity to compare them? Isn't this a question about video? Use video vectorscope, waveform monitor, parade, etc. That's what they do. They're built to help you examine a video signal objectively, without the biases and limitations of your eyes and brain. Lossy compression is designed to exploit those limitations, expressly so that you DON'T perceive a difference. – Jason Conrad Oct 17 at 4:45

Assuming ffmpeg's result is reliable and it does what you think (I don't know, don't use ffmpeg much), it seems that one of your drives, either the primary one or any of the backup drives is faulty. Use tools that calculate checksums, like md5 or sha or crc32 to verify that the files are indeed different. If the checksums differ you have to find out the faulty drive(s).

A few faulty bytes in a video are often not visible when watching, maybe the frame will be dropped where the faulty section is, maybe the way the video has been encoded masks the damage.

| improve this answer | |
  • I'm aware that one of the drives is faulty...the question is which one. The differences were first revealed to me with a sha256sum, and verified by a direct binary compare. And if the faulty frame was dropped, it should have shown up when viewing the result of kdenlive's "difference' transition. – ulatekh Oct 7 at 16:24

You will see clearly difference, even very subtle ones, with ffmpeg and its blend filter and xor mode within it.

| improve this answer | |

Use a vector scope and waveform monitor to judge the difference, not your eyes. Even if you're doing an XOR comparison, there are cases where your eye isn't enough.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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