Как было предложено здесь, я использую cat
команду для объединения нескольких файлов .mp3 в один файл .mp3.
Представьте, у меня есть следующие файлы .mp3 в текущей папке:
001001.mp3 001002.mp3 001003.mp3 001004.mp3 001005.mp3
или вот так:
096001.mp3 096002.mp3 096003.mp3 096004.mp3
Мне нужно объединить эти файлы .mp3 в порядке возрастания, то есть 001001.mp3+001002.mp3+001003.mp3+etc.
Чтобы объединить эти файлы .mp3 в один, я выполняю следующую команду в текущей папке:
cat *.mp3 > final.mp3
Я протестировал окончательный файл .mp3, и это то, что я и ожидал, но я должен быть уверен, что приведенная выше команда выбирает файлы в порядке возрастания.
Могу ли я быть уверен, что приведенная выше команда всегда объединяет файлы в порядке возрастания?
Спасибо, сэр !
источник
find . -maxdepth 1 -iname '*.mp3' -print0 | sort -z | xargs -0 mp3wrap output.mp3
*.mp3
должно хватить (и работает с пробелами).$ brew install mp3wrap
,*.mp3
гарантированно сохраняется алфавитный порядок. Если ваши файлы называются09.mp3
,10.mp3
,11.mp3
, то, вероятно , что вы хотите. Если ваши файлы называются9.mp3
,10.mp3
,11.mp3
, это, вероятно , не то , что вы хотите, но вы можете сделать`ls *.mp3 | sort -n`
.mp3wrap кажется достаточно приличным решением, но когда я проиграл полученный файл, временная метка была неправильной. Кажется, mp3wrap лучше всего использовать, когда вы объединяете mp3 в файл, который, как вы знаете, вы захотите разделить позже.
Я просто хотел навсегда соединить несколько mp3 вместе. В итоге я использовал ffmpeg для объединения файлов:
Сначала установите ffmpeg
Ubuntu 15.04+
Ubuntu 14.10 и ниже
Перейдите по адресу http://ffmpeg.org/download.html , загрузите одну из статических сборок, распакуйте ее и скопируйте в / usr / local / bin
ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3
Дополнительная информация: https://trac.ffmpeg.org/wiki/Concatenate#protocol
https://superuser.com/a/314245
источник
ffmpeg
отсутствует, ноavconv
заменяет его: askubuntu.com/questions/432542/…output.mp3
через a,mp3val
и вы увидите все виды ошибок, которые будут создавать проблемы с воспроизведением в Chrome64 + (см. bugs.chromium.org/p/chromium/issues/detail?id=794782 и bugs.chromium.org/p/chromium/ проблемы / детали? id = 806601 # c10 )Как ранее предлагалось,
mp3wrap
это хорошее решение. Это может не работать все время, хотя. Насколько я знаю,mp3wrap
предполагается, что все входные файлы имеют одинаковые характеристики, такие как VBR против CBR, битрейт и так далее. Если это предположение не будет выполнено, оно, скорее всего, потерпит неудачу. В этом случае единственным решением будет декодировать все mp3-файлы в сырой формат, например.wav
, объединить их с помощью программыsox
и завершить, перекодировав все в mp3.источник
Это делает алфавитную сортировку на основе отдельных символов. Это означает, что «01» стоит перед «1», поскольку значение «ноль» имеет значение меньше единицы.
Вот пример. У меня есть каталог с файлами с именами 1, 2, 3, 04, 05 и 06. Это текстовые файлы, которые содержат свои собственные имена файлов:
Так что да, это будет; но вы должны убедиться, что все ваши файлы правильно заполнены.
Эта изящная строка скрипта bash позволит вам визуально сравнивать имена файлов, что позволяет легко обнаружить любые ошибки:
Вывод будет выглядеть так:
Если это не так, вам нужно дополнить имена файлов: скрипт Bash для дополнения имен файлов в StackOverflow объясняет, как это сделать.
Редактировать. Голосуй за ответ Оли, это намного лучше. : P
Я оставлю свой, потому что это добавить что-то, но вы должны использовать его решение,
Имейте в виду, что
sort
все будет сортироваться так, как я описал выше, вам все равно придется дополнять имена файлов, если они не равны по длине.источник
Большинство людей предлагают
mp3wrap
, но у него есть свои минусы: сгенерированный файл не сообщает всю его длину в некоторых проигрывателях, и тогда вы не сможете пройти мимо этого пункта.mp3cat
делает работу быстро и хорошо, насколько я могу судить. Его можно скачать по адресу http://mulholland.xyz/dev/mp3cat/ и использовать следующим образом:другая возможность будет
sox
но он кажется очень медленным (возможно, он декодирует и перекодирует аудио?)
источник
Я обнаружил, что онлайн-сервис audio-joiner работает очень хорошо и сохраняет правильную временную отметку (в отличие от mp3wrap).
источник
Возможно, вы захотите попробовать использовать специальную программу для редактирования аудио (например, Audacity )
источник
Мне нравится комментарий bmaupin , но он может генерировать натуральные числа (версии), используя
sort -V
:и вам не нужно иметь дело со специальными символами, как
' " () [] {}
в имени файла.источник