Объединение нескольких файлов .mp3 в один .mp3

Как было предложено здесь, я использую команду 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

I протестировал окончательный файл .mp3, и это то, чего я ожидаю, но я должен быть уверен, что над командой выбирает файлы в восходящей последовательности.

Могу ли я быть уверенным, что команда выше всегда объединяет файлы в восходящей последовательности?

Спасибо, сэр!

1
задан 13 April 2017 в 15:24

7 ответов

mp3wrap кажется достаточно приличным решением, но когда я играл в результирующий файл, метка времени была неправильной. Похоже, что mp3wrap лучше всего использовать, когда вы присоединяетесь к mp3-файлам в файл, который, как вы знаете, вам захочется разбить позже.

Я просто хотел навсегда конкатенировать некоторые mp3-файлы. Я закончил использование ffmpeg для конкатенации файлов:

Сначала установите ffmpeg Ubuntu 15.04+
sudo apt install ffmpeg
Ubuntu 14.10 и ниже Перейдите по адресу http://ffmpeg.org/download.html, загрузите один из статических строит, разворачивает и копирует в / usr / local / bin ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3

Дополнительная информация: mp3wrap https://superuser.com/a/314245

14
ответ дан 25 May 2018 в 23:35

Как было предложено ранее, mp3wrap является хорошим решением. Возможно, он не работает все время. Насколько мне известно, mp3wrap предполагает, что все входные файлы имеют такие же характеристики, как VBR vs CBR, bitrate и т. Д. Если это предположение не будет выполнено, оно, скорее всего, потерпит неудачу. В этом случае единственным решением было бы декодировать все mp3-файлы в необработанный формат, например .wav, объединить их с программой, подобной sox, и закончить путем перекодирования всего в mp3.

7
ответ дан 25 May 2018 в 23:35

Он выполняет алфавитную сортировку, основанную на одиночных символах. Это означает, что «01» доходит до «1», так как naught имеет меньшее значение, чем одно.

Вот пример. У меня есть каталог с файлами с именами 1, 2, 3, 04, 05 и 06. Это текстовые файлы, содержащие их собственные имена файлов:

test$ cat *
04
05
06
1
2
3

Итак, да, это будет; но вы должны убедиться, что все ваши файлы «заполнены» правильно.

Эта отличная строка сценария bash позволит вам визуально сравнить имена файлов, что очень легко выявить любые ошибки:

for f in $(ls); do printf "%05s\n" "$f"; done

Результат будет выглядеть так:

   04
   05
   06
    1
    2
    3

Если это не так, вам нужно будет поместить имена файлов: yes в StackOverflow объясняет, как это сделать.

Edit. Голосуйте за ответ Оли, это намного лучше. : PI оставит мое, потому что он что-то добавит, но вы должны использовать его решение,

mp3wrap output.mp3 `ls -1 *.mp3 | sort`

Имейте в виду, что sort все равно будет сортировать вещи так, как я описал выше, вам все равно понадобятся для заполнения имен файлов, если они не равны по длине.

3
ответ дан 25 May 2018 в 23:35

Я нашел, что аудио-столик онлайн-сервиса работает очень хорошо и сохраняет правильную отметку времени (вопреки mp3wrap).

2
ответ дан 25 May 2018 в 23:35

Большинство людей предлагают mp3wrap, но у него есть минусы: созданный файл не сообщает о своей полной длине в некоторых игроках, а затем вы не можете искать это.

mp3cat делает насколько я могу судить, работа быстро и хорошо. Его можно скачать в http://mulholland.xyz/dev/mp3cat/ и использовать следующим образом:

mp3cat file1.mp3 file2.mp3 file3.mp3

другой возможностью будет sox

sudo apt-get install sox libsox-fmt-mp3
sox file1.mp3 file2.mp3 target.mp3

но он кажется очень медленным (возможно, он декодирует и переписывает аудио?)

2
ответ дан 25 May 2018 в 23:35

Вы можете попробовать использовать специальную программу редактирования аудио (например, Audacity)

0
ответ дан 25 May 2018 в 23:35

Мне нравится комментарий bmaupin, но он может создавать натуральные номера (версии) с помощью sort -V:

find . -maxdepth 1 -iname '*.mp3' -print0 | sort -Vz | xargs -0 mp3wrap ../tmp.mp3

, и вам не нужно иметь дело со специальными символами, такими как ' " () [] {} в имени файла.

0
ответ дан 25 May 2018 в 23:35

Другие вопросы по тегам:

Похожие вопросы: