Как «перекодировать» mp3 файлы

10

У меня есть достаточное количество mp3-файлов, которые я создал с помощью audiohijack pro на Mac. Теперь у меня больше нет Mac, и я использую их в своих системах Linux. К сожалению, программа, которую я использую (rhythmbox) для прослушивания этих файлов, не может определить, как долго эти файлы. Эти файлы занимают до 5 часов, и когда программа не может определить, сколько времени, я не могу прокрутить файл. Любые программы Unix / Linux, которые могут перекодировать эти файлы? Я не знаю достаточно ни об аудио в Linux, ни о формате файлов mp3, чтобы знать, что будет с этим связано.

Бест, Барт

kasterma
источник

Ответы:

6

Он не отвечает на вопрос в вашем заголовке, но, возможно, есть шанс исправить файлы без перекодирования. Например, одна распространенная проблема с неправильной длиной файлов MP3 - это файлы с переменной скоростью передачи данных, которые неправильно помечены как имеющие переменную скорость передачи данных (и программы, такие как rhythmbox, обрабатывают их так, как если бы они имели постоянную скорость). Инструмент vbrfix может исправить эти файлы. Другой полезный инструмент для проверки MP3-файла - mp3check , он также имеет такие опции, --fix-headersкоторые могут восстанавливать файлы (сначала делайте резервные копии файлов!).

Марсель Стимберг
источник
Приятно. Это кажется очень полезным инструментом.
Стивен Д
1
«for i in 1 2 3 4 5; do vbrfix -always -log EndersGame $ i.mp3 EG $ i.mp3; done» - это команда, которую я использовал для сохранения при наборе текста.
Кастерма
я действительно не понимаю, почему ссылка на дрянную программу, разработанную на windows и только позже портированную на linux (следовательно, даже не на скриптах, tsk tsk) сделала этот ответ принятым! (так что я понизил ответ)
ixtmixilix
@ixtmixilix - Для vbrfix, по крайней мере, двоичные файлы, которые они компилируют по ссылке, предназначены для windowz, поскольку это то, что, к сожалению, используют многие ppl. Версии для Linux доступны в других местах ( а также включены в Ubuntu 12.04+ ) - вы также можете попробовать использовать доступный исходный код . Ссылка mp3check мертва, хотя ....
Уилф
OK vbrfix отлично работает - как я использую Fedora, я скачал источники для версии Ubuntu , используется dpkg-source -x vbrfix_0.24-7.dscдля извлечения его, применить патчи и т.д., а затем ./configure --prefix='/home/wilf/Downloads/fsbOPEN/vbrfix/makeinstall', makeи make installпроизводить автономные возбудимых , что я мог бы использовать мои файлы. Мне нужно было разобрать -alwaysвариант, чтобы он работал.
Уилф
8

Хотя я конкретно не знаю , будут ли нужны дополнительные опции , чтобы решить проблему , вы упоминаете, FFmpeg является

комплексное кроссплатформенное решение для записи, конвертации и потоковой передачи аудио и видео.

Это швейцарский армейский нож для аудио и видео. Перекодировка ваших файлов должна быть такой же простой, как

$ ffmpeg -i oldfile.mp3 newfile.mp3

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

Стивен Д
источник
это кажется мне более здравым ответом. Очевидно, что у ОП есть много файлов и, вероятно, он знает, как открыть командную строку, хотя сегодня это беспокоит, и на самом деле этот ответ фактически ответил на вопрос, который я собирался задать. так что я проголосовал за это. Вы получаете хорошую SE карму, @Steven D, хотя ваш ответ не получил голосов, пока я не увидел его.
ixtmixilix
1
У меня похожая проблема, и я уже пробовал ffmpeg, и он по большей части работал: D, но у меня есть несколько файлов, на которые он выходил со ссылкой Invalid data found when processing input....
Уилф
3

Это можно сделать с lameпомощью тегов id3 (можно найти здесь ).

find . -type f -iname "*.mp3" | while read file 
do
    mv "$file" "${file}.old" && \
    lame --mp3input -q 0 -b 192 --resample 44.1 "${file}.old" "$file" && \
    id3cp "${file}.old" "$file"
done

Смотрите другие сценарии преобразования, которые я написал здесь: https://github.com/sid-the-sloth/conversion-scripts

Woohoo
источник
0

Попробуйте LAME. Я должен предупредить вас, что перекодирование может (вероятно) привести к потере качества.

xenoterracide
источник