Audio MD5

Список разделов Аудиоплеер foobar2000 Есть вопрос!

Описание: У вас проблемы с foobar2000 и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть. Подробно описывайте проблему. Не забывайте указать версию плеера, название сборки, по возможности добавить скриншоты проблемы.

Сообщение #1 K1RZA » 18.08.2021, 17:06

https://foobar.hyv.fi/?view=foo_audiomd5

Не могу понять, как завести эту вещь.
Хочу прямо из фубара через контекстное меню создавать проверочные файлы *.md5
K1RZA M
Автор темы
Аватара
Возраст: 35
Откуда: Россия, Санкт-Петербруг
Репутация: 0
С нами: 7 лет 11 месяцев

Сообщение #2 Azaza » 18.08.2021, 18:14

Этот компонент НЕ может создавать файлы *.md5. Он может только вычислять md5 аудиоданых (именно аудиоданных, а не файла) и записывать в теги. И для его работы нужен ffmpeg.exe

По факту, md5, которую выдаёт компонент, во всяком случае для FLAC'a, не соответствует действительности (md5, которая расчитана самим FLAC'ом). На досуге свяжусь с разработчиком по этому поводу.
Аудиофилия - это болезнь,поражающая головной мозг.Набор профилактически-превентивных мер против аудиофилии крайне скуден - техническое образование, умение мыслить логически и наличие здравого смысла.
Azaza M
Аватара
Репутация: 305
С нами: 6 лет 1 месяц

Сообщение #3 K1RZA » 18.08.2021, 19:17

А вообще есть какой компонент, чтобы создавать md5?
K1RZA M
Автор темы
Аватара
Возраст: 35
Откуда: Россия, Санкт-Петербруг
Репутация: 0
С нами: 7 лет 11 месяцев

Сообщение #4 Azaza » 18.08.2021, 19:25

K1RZA:А вообще есть какой компонент, чтобы создавать md5?
Нет такого компонента, который создаёт файлы *.md5. Вообще, использование *.md5, содержащих хеши именно файлов целиком ( именно такие создаёт Trader's Little Helper) не очень удобно для аудио. При редактировании тегов хеш файла изменяется и нужно менять хеш, записанный в *.md5

Azaza:По факту, md5, которую выдаёт компонент, во всяком случае для FLAC'a, не соответствует действительности (md5, которая расчитана самим FLAC'ом). На досуге свяжусь с разработчиком по этому поводу.
Ответ от разработчика:
The checksum is calculated from undecoded audio data, both for speed reasons and to support lossy codecs. Lossy decoding can easily have bit-differences depending on platform and optimizations and these would ruin any checksum matching.
The component calls ffmpeg with the following parameters: ffmpeg -v 0 -INPUT -map 0:a -c copy -f md5 -


Т.е. вычисляется md5 недекодированного аудиопотока. Поэтому и несоответствие с md5, вычисленной FLAC'ом, т.к. FLAC вычисляет md5 декодированного аудио.
Аудиофилия - это болезнь,поражающая головной мозг.Набор профилактически-превентивных мер против аудиофилии крайне скуден - техническое образование, умение мыслить логически и наличие здравого смысла.
Azaza M
Аватара
Репутация: 305
С нами: 6 лет 1 месяц

Сообщение #5 K1RZA » 19.08.2021, 12:14

Есть замечательный компонент, File Integrity Verifier.
Он как раз делает то, что мне нужно. Не только проверяет целость файлов, но и высчитывает хэш суммы.
Но ему не хватает такой удобной вещи, как создание проверочных файлов. Странно, что автор такой функционал не добавил.
Можно конечно экспортировать полученные данные в текстовый файл, но смысл.
Изображение
K1RZA M
Автор темы
Аватара
Возраст: 35
Откуда: Россия, Санкт-Петербруг
Репутация: 0
С нами: 7 лет 11 месяцев

Сообщение #6 viviancels » 22.08.2022, 23:33

Сегодня задался вопросом, как узнать, что файл скачался битым или не докачался? Помимо отсутствия тегов и обложки в тегах? в метаданных flac прописывается контрольная сумма аудиопотока, но это просто запись, настоящая контрольная сумма может быть другой, если файл битый, вот если бы пересчитать все заново и сравнить с этой записью, но для этого нужно конвертировать его во flac заново, тогда при конвертировании контрольная сумма будет новой. Потом только визуально сравнивать старый и новый списки. Например, есть flac, у него запись контрольной суммы MD5, если файл битый и переконвертировать его в flac заново, то эта запись с контрольной суммой MD5 поменяется. Это дурацкий способ проверки. Нашел утилиту flacfrontend, которая вроде проверяет, но до конца не разобрался с ней. Больше интересует foobar2000 и его плагины.

По поводу обсуждаемого плагина. У меня почемуто выдает ошибку. CreateProcess failed (0x00000002)

File Integrity Verifier (foo_verifier) проверяет читаемость (декодирование) файла. Но бывает, что файл декодируется/читается, но битый, не до конца. У меня был такой файл, к сожалению, я переписал его новым с новой контрольной суммой MD5, хотелось на нем проверить как работают плагины.
Последний раз редактировалось viviancels 23.08.2022, 01:04, всего редактировалось 2 раз(а).
viviancels
Репутация: 0
С нами: 1 месяц 15 дней

Сообщение #7 VEG » 23.08.2022, 00:49

viviancels:По поводу обсуждаемого плагина. У меня почемуто выдает ошибку. CreateProcess failed (0x00000002)
По-видимому, не может найти ffmpeg.exe, который этот плагин использует.
VEG M
Администратор
Аватара
Возраст: 34
Откуда: Хельсинки, Финляндия
Репутация: 227
С нами: 10 лет 5 месяцев

Сообщение #8 viviancels » 23.08.2022, 01:06

VEG:По-видимому, не может найти ffmpeg.exe, который этот плагин использует.
Я тоже подумал так и положил ffmpeg.exe в папку components и в папку windows/system32, после перезагрузки системы заработал.

Наконец, разобрался. Плагин Create Audio MD5 Checksum подсчитывает и показывает реальную, актуальную контрольную сумму аудиопотока. Если она не совпадает с номинальной, той, которая записана в паспорте файла, в метаданных (fingerprint), значит, файл битый.
Плагин Verify Integrity видимо тоже создает реальную контрольную сумму и сравнивает ее с номинальной, которая записана в метаданных, при несовпадении выдает ошибку.

Программы Trader's little helper и FLAC Frontend делают то же самое, что и Verify Integrity, проверяют FLAC на целостность. Я просто открыл FLAC в HEX
редакторе, удалил там пару ячеек и тем самым поменял аудиопоток на пару байтов. При этом запись MD5 осталась прежней, а фактически MD5 аудиопотока поменялся.
viviancels
Репутация: 0
С нами: 1 месяц 15 дней

Сообщение #9 Azaza » 23.08.2022, 03:53

viviancels:Наконец, разобрался. Плагин Create Audio MD5 Checksum подсчитывает и показывает реальную, актуальную контрольную сумму аудиопотока. Если она не совпадает с номинальной, той, которая записана в паспорте файла, в метаданных (fingerprint), значит, файл битый.
Плагин Verify Integrity видимо тоже создает реальную контрольную сумму и сравнивает ее с номинальной, которая записана в метаданных, при несовпадении выдает ошибку.
Обратите внимание, что по умолчанию foo_audiomd5 вычисляет md5 для недекодированных данных (для lossless можно включить вычисление md5 для декодированных в PCM данных). File Integrity Verifier для lossless вычисляет md5 декодированных в PCM данных. Все lossless кодеки, которые могут записывать md5 в метаданные, кроме Monkey's audio (алгоритм вычисления md5 которого известен только его автору), записывают в файл именно md5 декодированных в PCM данных.

viviancels:Я просто открыл FLAC в HEX редакторе, удалил там пару ячеек и тем самым поменял аудиопоток на пару байтов. При этом запись MD5 осталась прежней, а фактически MD5 аудиопотока поменялся.
Такие повреждения в файле будут обнаружены при проверке с помощью File Integrity Verifier или flac.exe, даже если в файле не записана md5.

viviancels:бывает, что файл декодируется/читается, но битый, не до конца.
Такие файлы File Integrity Verifier тоже определяет, кстати, даже при отсутствии в них md5. Пример файла - https://www.dropbox.com/s/n9awti95o8kt88v/TRUNCATED @ 3m 31s.flac?dl=1
Аудиофилия - это болезнь,поражающая головной мозг.Набор профилактически-превентивных мер против аудиофилии крайне скуден - техническое образование, умение мыслить логически и наличие здравого смысла.
Azaza M
Аватара
Репутация: 305
С нами: 6 лет 1 месяц

Сообщение #10 viviancels » 23.08.2022, 07:09

Azaza:Обратите внимание, что по умолчанию foo_audiomd5 вычисляет md5 для недекодированных данных (для lossless можно включить вычисление md5 для декодированных в PCM данных).

Нашел в настройках foobar2000 в самой нижней вкладке advanced эту настройку:
Спойлер
Изображение

Если выделить до 100 файлов в плейлисте, у foo_verifier в контекстном меню utilities есть пункт verify integrity (пункт AccurateRip неактивный). Если выделить более 100 треков, например, 101, то появляется второй пункт меню verify integrity with Audio MD5, но при нажатии на него в окне результатов в колонке Status выдает AufioMD5 cheksum missing для всех треков.
Спойлер
Изображение
viviancels
Репутация: 0
С нами: 1 месяц 15 дней

Сообщение #11 Azaza » 23.08.2022, 18:50

viviancels:Если выделить до 100 файлов в плейлисте, у foo_verifier в контекстном меню utilities есть пункт verify integrity (пункт AccurateRip неактивный). Если выделить более 100 треков, например, 101, то появляется второй пункт меню verify integrity with Audio MD5, но при нажатии на него в окне результатов в колонке Status выдает AufioMD5 cheksum missing для всех треков.
Пункт меню "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 треков.
Аудиофилия - это болезнь,поражающая головной мозг.Набор профилактически-превентивных мер против аудиофилии крайне скуден - техническое образование, умение мыслить логически и наличие здравого смысла.
Azaza M
Аватара
Репутация: 305
С нами: 6 лет 1 месяц

Сообщение #12 viviancels » 23.08.2022, 22:24

Azaza, понятно, получается, чтобы в дальнейшем сверять MD5 с помощью foo_audiomd5, сначала нужно запустить Create audio MD5 checksum и нажать update tags, чтобы md5 записалась в тег, который использует для сверки foo_audiomd5.
viviancels
Репутация: 0
С нами: 1 месяц 15 дней


Вернуться в Есть вопрос!