Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Verify lossy file integrity? (Read 2539 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Verify lossy file integrity?

I like to be able to quickly verify files. With FLAC this is easy because they include an md5 inside the file. I have about 7TB of FLAC files and can easily verify any/all of them anytime I want.

When I convert to ogg, for portable use, I include an md5 file in the album directory. This works but is quite annoying. Every time I want to make a simple tag change I have to check original md5 > edit tag > make new md5.

Is there another reliable way to verify ogg and/or aac files?

I use AudioTester (http://www.vuplayer.com/other.php) to quickly test FLAC files. It claims to also test ogg but I have no idea what it's actually checkling. heh

Cheers :P

Re: Verify lossy file integrity?

Reply #1
You don't need md5. Audiotester works just fine. Also you can use foobar2000 with component foo_verifier, it can verify both vorbis and aac.

https://xiph.org/vorbis/doc/framing.html
An Ogg stream is structured by dividing incoming packets into segments of up to 255 bytes and then wrapping a group of contiguous packet segments into a variable length page preceded by a page header. Both the header size and page size are variable; the page header contains sizing information and checksum data to determine header/page size and data integrity.

Re: Verify lossy file integrity?

Reply #2
Thanks. I tried foo_verifier but it says obsolete. heh. The built in verifier seems to work but just says no problems found. Wish I could actually see some data that everything is verified.


Re: Verify lossy file integrity?

Reply #3
foo_verifier being "obsolete" is because the functionality is built into foobar2000 version 2 - it isn't the verification functionality that is obsolete, it is the need to load the component.

Also:
When I convert to ogg, for portable use, I include an md5 file in the album directory. This works but is quite annoying. Every time I want to make a simple tag change I have to check original md5 > edit tag > make new md5.
https://foobar.hyv.fi/?view=foo_audiomd5 makes an MD5 on the audio-only.
Be warned that retagging sometimes still matters: if you have quirky headers in an MP3 (and that happens), then retagging will every now and then might make ffmpeg (which the component uses) sometimes interpret it as a slightly different length ... at least that is what I think is going on. Not completely sure.

As for AudioTester, it is a nice tool that I use quite a lot - the good thing is that you can just dump a folder into its window, and it will handle all supported types. A few pieces of information:
It also is picky about MP3 bad tags and bad headers. Much more than most players. Reports corruption when there is nothing to worry about ... and well, maybe that is for the same files where foo_audiomd5 & ffmpeg might report MD5 changed.
It uses libvorbis, as does foobar2000 - although I don't know about versions.
It uses libflac, but not the most recent one. More recent (lib)FLAC is more zealous about errors.
Also it is so old that it has to do full decode & verify on WavPack, rather than the block-checksums. Which isn't much of an issue as long as you are willing to wait for decoding.

Re: Verify lossy file integrity?

Reply #4
It uses libvorbis, as does foobar2000.
BTW, foobar2000 has used ffmpeg for vorbis decoding since version 1.2 and it came back to libvorbis in version 2.0.



Re: Verify lossy file integrity?

Reply #7
Does not appear to support ogg files?


Re: Verify lossy file integrity?

Reply #8
It needs ffmpeg. If you don't have ffmpeg.exe in %PATH% you must set the exe location in Preferences -> Advanced -> Tools -> Audio MD5 -> FFmpeg bin path.

Re: Verify lossy file integrity?

Reply #9
Doh! .. heh. Thanks :P


Re: Verify lossy file integrity?

Reply #10
It does not seem that foo_audiomd5 has its own thread? So @Case :



Best would be for it to be integrated into ordinary verifier, in a way that the file doesn't have to be read and scanned more than once. But if that is not feasible, maybe fix the text that promises something it does not deliver.


Edit: damn, I am not even in the fb2k subforum. Oh well.

Re: Verify lossy file integrity?

Reply #11
As you know, this component doesn't do any decoding. Quite different approach than with the first party verifier.
It's common terminology to call hash checking integrity verification. You seem to have created checksum for a corrupted track - the data hasn't changed since and the checksum still matches.

Do you want me to remove the use of "integrity" term and use some other terminology? What do you suggest?

Re: Verify lossy file integrity?

Reply #12
(Yes, the file was already corrupted.)

Suggestions, just off the top of my head (that's a disclaimer ...):

For that text:
"Tested 1 track in 0:00.298. No MD5 mismatch."

For the menu: Don't call it verify integrity, say these two items:
* "Create Audio MD5 tags" (this one skips those with an MD5 already).
* "Calculate/test Audio MD5", which calculates anew and reports differences if any. Then display the result with buttons to maybe not in this order):
Close,
Write new only (no overwrite) [and keep window open]
Overwrite %audiomd5% maybe with a yes-I-understand, then close
And an option of some reporting out - either export or maybe better: send to new playlists. (AudioMD5 missing, AudioMD5 OK, AudioMD5 mismatch.)


Re: Verify lossy file integrity?

Reply #13
I agree that "no MD5 mismatch" is a bit better.


And while we're at terminology... how about changing the name of the component and its default tag name?
Reasons:
1. There's already an "Audio MD5" value for FLAC and WavPack files (and others?), leading to potential confusion.
2. A reference to FFmpeg in the name would give a hint to new users that FFmpeg is a required part.
Ideas: FFMD5, FFMDsum, AudioFFcheck, ...

Re: Verify lossy file integrity?

Reply #14
"No MD5 mismatch" is a double negative, which you probably want to avoid if your goal is to be clear.