54

Поиск Google о том , как присоединиться / объединить много mp3 файлов, это говорит о том , что я должен просто cat вместе.

Это может "работать", но очевидно, что это не правильный способ сделать это, поскольку каждый заголовок и набор тегов IDv3 также будут объединены.

Существует ли программа для Linux, которая может быть написана для объединения / слияния многих mp3?

Может ли mplayer/mencoder/ffmpeg сделать это?

5 ответов5

72

Это объединит два mp3-файла, и в результате метаданные будут такими же, как у первого файла:

ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3

Это связано с тем, что для ffmpeg вся часть «concat:» представляет собой один "входной файл", и его метаданные будут относиться к первому объединенному файлу. Если вы хотите использовать вместо этого метаданные из второго файла, вы должны добавить его в качестве фиктивного входного файла и сопоставить его метаданные с выходными данными:

ffmpeg -i "concat:file1.mp3|file2.mp3" -i file2.mp3 -acodec copy test.mp3 -map_metadata 0:1

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

ffmpeg -i file1.mp3 -f ffmetadata file1.metadata

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

ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy -metadata "title=Some Song" test.mp3 -map_metadata 0:-1
12

Mp3Wrap - Утилита командной строки, которая объединяет несколько файлов MP3 в один воспроизводимый файл MP3 без потери имен файлов или информации ID3 и без перекодирования. Также поддерживает архивирование не аудио данных, таких как списки воспроизведения, информационные файлы и изображения обложек в MP3. Эти файлы могут быть распакованы позже (например, с помощью mp3splt); обычные MP3-декодеры могут воспроизводить весь аудиопоток как одну длинную дорожку.

5

Это объединит папку, полную MP3, в один файл MP3:

1) Сохраните список файлов MP3 для объединения, например,

$ cat mylist.txt
file '/tmp/01.mp3'
file '/tmp/02.mp3'
file '/tmp/03.mp3'
file '/tmp/04.mp3'
file '/tmp/05.mp3'
file '/tmp/06.mp3'
file '/tmp/07.mp3'

2) Запустите следующую команду (-safe 0 не требуется, если вместо mylist.txt используются относительные пути):

$ ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp3
2

Если вы хотите объединить все mp3-файлы текущего каталога:

function join_by { local IFS="$1"; shift; echo "$*"; }
files=(*.mp3)
ffmpeg -i "concat:`join_by "|" $files`" -acodec copy output.mp3
0

Если вам нужен сценарий, вам лучше использовать решение ffmpeg. Однако, если вам когда-нибудь понадобится приложение для подобных вещей, вы можете попробовать Audacity. Это открытый исходный код и кросс-платформенный. Я не использовал его для присоединения к mp3, но я использовал его, чтобы вырезать фрагменты из mp3 и затемнять их в конце. Я готов поспорить, что вы можете присоединиться к mp3-файлам и соединить их друг с другом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .