3

У меня есть около 15 000 музыкальных файлов, хранящихся на сервере Ubuntu (16.04), около 50% FLAC, 25% каждый mp3 и m4a (aac).

Я думаю, что возможно 3-5% повреждены из-за аппаратного сбоя жесткого диска. Проблемы накапливались постепенно в течение некоторого времени, прежде чем я заметил. Файлы теперь восстанавливаются на новые диски с помощью ddrescue .

Исходное хранилище представляло собой две копии каждого файла на отдельных устройствах, и оба диска постепенно выходили из строя, но независимо. Результатом является то, что файл, который является плохим в одной копии, может быть в порядке в другой копии.

Я пытаюсь найти метод проверки командной строки для использования в сценарии, чтобы определить, какие заголовки имеют хотя бы одну хорошую копию. В тех случаях, когда оба они плохи, мне нужно будет переписать их с CD.

Для FLAC я зациклил команду flac -t в скрипте, который генерирует списки хороших файлов и плохих файлов. Я полагаю, что команда flac -t декодирует без отправки звука на любое воспроизводящее устройство, и вычисляет хэш MD5 для декодированного звука и сравнивает его с оригинальным хешем, включенным в метаданные файла. Это довольно быстро и отлично работает.

Я хотел бы добиться аналогичной проверки с файлами mp3 и m4a, но не смог найти подходящий инструмент. Я посмотрел на mp3val , но тестирование его на mp3, где я намеренно повредил данные в аудио, не показывает ошибку.

Из того, что я могу найти, исследуя mp3 и m4a, кажется, что хэш не хранится, поэтому я не уверен, какие другие подходы к валидации могут быть возможны.

В идеале я хотел бы разобраться в определенно хорошее / определенно плохое. Если это не может быть сделано, я все равно выиграю от сортировки на возможно хорошее / определенно плохое или определенно хорошее / возможно плохое.

Кто-нибудь может предложить какое-нибудь решение для Linux, которое могло бы достичь этого, либо для / обоих mp3, либо для m4a / aac?

0