4

Я пытаюсь найти программу командной строки (Windows или Linux), которая может проверить.WAV-файлы, чтобы увидеть, являются ли они полными, без повреждений или внезапных окончаний.

Хотя я нашел несколько программ, которые могут сделать это с файлами .mp3, я не могу найти ничего, что может сделать это с.Файлы WAV, кроме пары коммерческих программ Windows, которые используют только графический интерфейс и поэтому не могут использоваться в сценариях.

3 ответа3

7

Вот статья о том, как должен выглядеть wav-файл PCM:

https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

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

Обновить:

http://www.sendspace.com/file/cdy1hk

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

Он написан на Python и зависит от библиотеки волн Python. Вы можете извлечь .py файл из zip и проверить / запустить самостоятельно, либо использовать скомпилированный exe вместе с включенными файлами поддержки.

Кажется, работает нормально, например, для файлов, выводимых с помощью lame --decode, и ловит, когда я обрезаю WAV (проверяет, чтобы убедиться, что размер файла нормальный).

Невозможно определить, были ли повреждены данные PCM без, например, внешних контрольных сумм и т.д.

Обновить:

Добавлена немного лучшая проверка ошибок. Скомпилированная exe-версия выходит из себя, когда wavcheck.py находится в той же папке, поэтому я поместил ее в подпапку (/src). Лол. Обновленная ссылка выше на новый файл.

Обновить:

Я взглянул на shntool в соответствии с предложением @boehj - похоже на хорошее программное обеспечение для проверки файлов WAV, и у него хороший подробный вывод. Его выходные данные могут быть тривиально проанализированы, или его исходный код может быть изменен, чтобы обеспечить состояние выхода «все в порядке» в режиме «информация» и / или «len». Как он есть, он имеет код выхода 0, даже если он сообщает о проблемах с файлом.

Домашняя страница для shntool: http://www.etree.org/shnutils/shntool/

1

Ripcheck - это утилита, которая делает это.

Цитирование документов:

"ripcheck" запускает различные тесты для файла WAV, чтобы увидеть, есть ли потенциальные ошибки, которые произошли при преобразовании CD в файл WAV.

[...]

ЗАЧЕМ?

Эта программа была написана, потому что мы получали некоторые жалобы на случайные "хлопки" в начале на некоторых альбомах в Magnatune. Дальнейшие исследования показали, что большинство альбомов, которые мы выпустили в 2007 году, имели различные проблемы с копированием CD. Мы также нашли различные CDR, сожженные нашими музыкантами, у которых были небольшие дефекты, возможно, из-за использования дешевых CDR-носителей или слишком быстрой записи CDR.

[...]

1

Я знаю, что это старая тема, но на всякий случай она пригодится:

Инструмент JHOVE (который довольно широко используется в области архивирования / цифровых библиотек) включает в себя модуль WAV, который может проверять файлы WAV. Доступно здесь:

http://jhove.openpreservation.org/

Не знаю, как проверка JHOVE сравнивается с проверками, которые выполняет shntool .

ОБНОВЛЕНИЕ: поэтому после публикации моего ответа я сам убил несколько WAV, а затем провел их через ряд инструментов. Полная рецензия со ссылками на тестовые данные и скрипты здесь:

http://openpreservation.org/blog/2017/01/04/breaking-waves-and-some-flacs/

Главный итог: лучше придерживаться старого доброго Shntool! JHOVE оказывается бесполезным для такого рода вещей (что также было для меня неожиданностью). (Между прочим, блог также посвящен обнаружению поврежденных файлов FLAC, хотя здесь речь не шла об этом.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .