Список разделов › foobar2000 › Есть вопрос!
Нет такого компонента, который создаёт файлы *.md5. Вообще, использование *.md5, содержащих хеши именно файлов целиком ( именно такие создаёт Trader's Little Helper) не очень удобно для аудио. При редактировании тегов хеш файла изменяется и нужно менять хеш, записанный в *.md5K1RZA:А вообще есть какой компонент, чтобы создавать md5?
Ответ от разработчика:Azaza:По факту, md5, которую выдаёт компонент, во всяком случае для FLAC'a, не соответствует действительности (md5, которая расчитана самим FLAC'ом). На досуге свяжусь с разработчиком по этому поводу.
По-видимому, не может найтиviviancels:По поводу обсуждаемого плагина. У меня почемуто выдает ошибку. CreateProcess failed (0x00000002)
ffmpeg.exe
, который этот плагин использует.Я тоже подумал так и положил ffmpeg.exe в папку components и в папку windows/system32, после перезагрузки системы заработал.VEG:По-видимому, не может найти ffmpeg.exe, который этот плагин использует.
Обратите внимание, что по умолчанию foo_audiomd5 вычисляет md5 для недекодированных данных (для lossless можно включить вычисление md5 для декодированных в PCM данных). File Integrity Verifier для lossless вычисляет md5 декодированных в PCM данных. Все lossless кодеки, которые могут записывать md5 в метаданные, кроме Monkey's audio (алгоритм вычисления md5 которого известен только его автору), записывают в файл именно md5 декодированных в PCM данных.viviancels:Наконец, разобрался. Плагин Create Audio MD5 Checksum подсчитывает и показывает реальную, актуальную контрольную сумму аудиопотока. Если она не совпадает с номинальной, той, которая записана в паспорте файла, в метаданных (fingerprint), значит, файл битый.
Плагин Verify Integrity видимо тоже создает реальную контрольную сумму и сравнивает ее с номинальной, которая записана в метаданных, при несовпадении выдает ошибку.
Такие повреждения в файле будут обнаружены при проверке с помощью File Integrity Verifier или flac.exe, даже если в файле не записана md5.viviancels:Я просто открыл FLAC в HEX редакторе, удалил там пару ячеек и тем самым поменял аудиопоток на пару байтов. При этом запись MD5 осталась прежней, а фактически MD5 аудиопотока поменялся.
Такие файлы File Integrity Verifier тоже определяет, кстати, даже при отсутствии в них md5. Пример файла - https://www.dropbox.com/s/n9awti95o8kt88v/TRUNCATED @ 3m 31s.flac?dl=1viviancels:бывает, что файл декодируется/читается, но битый, не до конца.
Azaza:Обратите внимание, что по умолчанию foo_audiomd5 вычисляет md5 для недекодированных данных (для lossless можно включить вычисление md5 для декодированных в PCM данных).
Пункт меню "Verify integrity with Audio MD5" принадлежит foo_audiomd5, а не foo_verifier. Если md5 не была предварительно записана в соответствующий тег (по умолчанию - audiomd5), то и появляется сообщение "AufioMD5 cheksum missing". foo_audiomd5 НЕ обращает внимания на ту md5, которая записывается в файлы самими кодерами при кодировании и отображается на вкладке "Details" и с которой сверяется foo_verifier. Кстати, если хотя бы в одном из выделенных файлов есть заполненный тег, используемый foo_audiomd5, то пункт "Verify integrity with Audio MD5" появится при выделении и меньше 100 треков.viviancels:Если выделить до 100 файлов в плейлисте, у foo_verifier в контекстном меню utilities есть пункт verify integrity (пункт AccurateRip неактивный). Если выделить более 100 треков, например, 101, то появляется второй пункт меню verify integrity with Audio MD5, но при нажатии на него в окне результатов в колонке Status выдает AufioMD5 cheksum missing для всех треков.
Спасибо большое за инфо, кто бы мог подумать, но вот как тогда File Integrity Verifier подтверждает корректность MD5? Плюс попались файлы во FLAC, у которых в Details нет тега MD5, тоже непонятно, как он может подтвердить, если тег затёрт?Azaza:кроме Monkey's audio (алгоритм вычисления md5 которого известен только его автору)
Для Monkey's audio - никак. Для FLAС без md5 тоже никак. В этих случаях Integrity Verifier просто вычисляет md5, ни с чем её не сравнивая. Но определить, что файл повреждён, можно и без сравнения md5.faraway:но вот как тогда File Integrity Verifier подтверждает корректность MD5? Плюс попались файлы во FLAC, у которых в Details нет тега MD5, тоже непонятно, как он может подтвердить, если тег затёрт?
Прикол в том, что foo_verifier проверяет и подтверждает корректность (No problems found).Azaza:Для Monkey's audio - никак. Для FLAС без md5 тоже никак.
А каким образом?Azaza:Но определить, что файл повреждён, можно и без сравнения md5.
Подтверждает, что файл декодируется без проблем, а не корректность несуществующей md5.faraway:Прикол в том, что foo_verifier проверяет и подтверждает корректность (No problems found).
Например, у FLAC'а каждый фрейм имеет CRC - https://xiph.org/flac/format.html#frame_headerfaraway:А каким образом?
Т.е. этот плугин не сличает хэши с тегом, а только показывает?Azaza:Подтверждает, что файл декодируется без проблем, а не корректность несуществующей md5.
Разве не эффективнее иметь CRC на весь аудио-поток? Или каждый фрейм верифицируется по мере воспроизведения?Azaza:Например, у FLAC'а каждый фрейм имеет CRC
Если есть с чем сличать, то сличает, а, если не с чем сличать, то только показывает ту, которую вычислил. Да пребудет с Вами Капитан Очевидность.faraway:Т.е. этот плугин не сличает хэши с тегом, а только показывает?
Насчёт воспроизведения не знаю, а при верификации всего файла, да, каждый фрейм верифицируется, причём всегда, неважно есть ли в файле md5 для всего потока, или нет.faraway:Или каждый фрейм верифицируется по мере воспроизведения?
Ну это как-то немножко неочевидно, тем более, когда не знаешь о наличии CRC во фреймах и других возможностях верификации, спасибо за ликбез. Значит второй плугин foo_audiomd5 более прямолинеен.Azaza:Да пребудет с Вами Капитан Очевидность.