Как я могу исправить неправильную длительность mp3?

22

У меня есть несколько песен в моей музыкальной библиотеке, которые отображают неправильные значения длительности, и поэтому играют только частично на Клементине. В Banshee и некоторых других проигрывателях они показывают разные значения длительности и иногда воспроизводят полную песню.

Есть ли способ исправить это без необходимости «перекодировать» песню?

RolandiXor
источник

Ответы:

24

MP3 Diags может исправить неправильную продолжительность (и другие ошибки). Это с открытым исходным кодом и в репозиториях. Это инструмент с графическим интерфейсом.

Установка

sudo apt-get install mp3diags mp3diags-doc

Другой вариант - MP3val , который можно использовать либо через командную строку , либо через графический интерфейс:

Установка

sudo apt-get install mp3val

Пример использования

mp3val damaged.mp3 -f -t

-f: исправить ошибки,: -tсохранить оригинальную метку времени

Phoibos
источник
Это сработало для меня. Я использую, catчтобы объединить части аудиокниги в один файл ( cat 1.mp3 2.mp3 > out.mp3), и это прекрасно работает для воспроизведения, но почти каждый проигрыватель дурачит временные метки и даже mediainfoпоказывает продолжительность из первого файла, а не объединенный.
blockloop
catменее чем идеально подходит для таких задач, как объединение mp3. Лучший способ: http://superuser.com/questions/314239/how-to-join-merge-many-mp3-files
phoibos
Почему вы так думаете? MP3-файлы - не что иное, как необработанные потоки, и они почти идеальный кандидат, если не считать catтривиальных побочных эффектов, решаемых простой переоценкой данных заголовков Xing. Даже без mp3val файлы по-прежнему воспроизводятся во всех проигрывателях, через которые я их отправлял. catявляется чрезвычайно эффективным и намного быстрее, чем перекодирование с помощью ffmpeg. Даже с добавленной командой mp3val.
blockloop
ffmpegс concatи -acodec copyделает не перекодировать - он просто копирует потоки (так это быстро), но создает соответствующий файл в первую очередь (без бесполезных данных заголовка и теги появляются несколько раз в результирующих файлов).
Phoibos
10

Если вы не хотите устанавливать что-то новое, попробуйте с помощью ffmpeg :

ffmpeg -i file_orig.mp3 -acodec copy file_fixed.mp3
Alcaro
источник
Идеальное решение, работает и в том случае, если сам ffmpeg создал неправильный mp3-файл!
Пьерпаоло Сира
Это на самом деле работало для меня, когда mp3valи mp3checkрешения не. (Просто чтобы быть уверенным, что он не перекодирует, верно?)
Нолдорин
С копией -acodec он не перекодирует. Если вы хотите проверить, попробуйте с этим и без него и проверьте, как быстро он идет.
Алькаро
1

Помимо заголовков VBR, не соответствующих фактическому аудио (которое вы бы использовали mp3valдля исправления, как упомянуто в другом ответе), еще одна причина, по которой это может быть вызвано, - файл MP3, имеющий тег ID3, который имеет неверное значение для TLENтега. Вы можете исправить это, используя mid3v2инструмент из mutagenпакета для удаления тега (очевидно, его необязательно):

$ mid3v2 --delete-frames=TLEN filename.mp3

Музыкальный проигрыватель Quodlibet также имеет удобный плагин «Fix MP3 Duration», который вы можете использовать для этого.

(Взято из FAQ по Quodlibet: http://quodlibet.readthedocs.org/en/latest/guide/faq.html )

nedned
источник
1

mp3check отлично сработал для меня и с подстановочными знаками.

sudo apt-get install mp3check

mp3check {filename or wildcard} --cut-junk-start --cut-junk-end --fix-headers
Дмитрий Орлов
источник
помог, когда проигрыватель Windows Media показал неправильную длительность mp3 файла
Mantas D
ПРЕДУПРЕЖДЕНИЕ. Если у вас есть теги id3v2, обложки и т. Д., Будьте предельно осведомлены об этих проблемах (я усвоил трудный путь) bugs.launchpad.net/ubuntu/+source/mp3check/+bug/592775 bugs.launchpad.net/ubuntu/+ source / mp3check / + bug / 1348223
digitaltoast