Как я могу целостно определить, является ли mp3-файл усеченным/обрезанным/обрезанным из аудиоданных?
У меня есть куча mp3-файлов, некоторые из которых были обрезаны (из-за незавершенной загрузки или чего-то еще). Я хочу отличить хорошее от плохого (т.е. от тех, что отсекаются посередине). В ответах на связанные вопросы перечислено несколько возможностей, например
- Обнаружение усеченных файлов mp3 или ogg
- Существует ли инструмент, который может обнаружить (и, если возможно, исправить) ошибки в файлах MP3?
которые используют метаданные, чтобы определить, не соответствует ли длина предполагаемой длине (а также найти и исправить другие ошибки). Для этого можно использовать несколько инструментов, напримерmp3val
,mp3check
иmp3diags
(все они были доступны мне черезapt-get
в репозиториях Ubuntu и выглядел многообещающе и просто в использовании), а также мат (который я не пробовал).
Однако в моем случае ничего из этого не сработало, потому что, очевидно, во всех файлах были ошибки метаданных. Так что мне пришлось вручную прослушивать конец каждого, чтобы увидеть, правильно ли он затих или явно оборвался. Можно ли как-нибудь сделать что-то подобное автоматически (слушать резкое отключение звука) для большого количества файлов?
Я нашел по крайней мере один способ (который я опубликую в качестве ответа). Очевидно, что весь этот подход основан на предположении и будет зависеть от природы рассматриваемых mp3-файлов, а именно от того, ожидается ли, что они закончатся тишиной. Тем не менее, я ожидаю, что это будет верно для большинства людей с этой общей проблемой, поэтому мне кажется, что это полезный способ изучить и опубликовать информацию для других, у кого может возникнуть такая же проблема.