Como juntar / mesclar muitos arquivos mp3?

50

Pesquisando no Google sobre como juntar / mesclar muitos arquivos mp3, isso sugere que eu deveria apenas cat eles juntos.

Isso pode "funcionar", mas claramente não é a maneira correta de fazer isso, já que cada cabeçalho e conjunto de tags IDv3 também serão concatenados.

Existe um programa Linux que pode ser roteirizado para unir / mesclar muitos mp3?

O mplayer / mencoder / ffmpeg pode fazer isso?

    
por Sandra 23.07.2011 / 23:19

5 respostas

68

Isso concatenará dois arquivos mp3 e os metadados resultantes serão os do primeiro arquivo:

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

Isso porque, para o ffmpeg, toda a parte "concat:" é um único "arquivo de entrada" e seus metadados serão do primeiro arquivo concatenado. Se você quiser usar metadados do segundo arquivo, terá que adicioná-lo como um arquivo de entrada fictício e mapear seus metadados para o resultado:

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

Se você quiser construir seus metadados a partir dos dois metadados, terá que fazer isso manualmente. Você pode descarregar os metadados de um arquivo com

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

Depois de descarregar metadatas e construir novos metadados, você pode adicioná-lo ao arquivo de saída com -metadata e pode desativar a cópia de metadados definindo um -map_metadata mapping a partir de um número de arquivo de entrada negativo. Isso define um valor de nome e nenhum outro metadado:

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

Mp3Wrap - Utilitário de linha de comando que envolve vários arquivos MP3 em um único MP3 reproduzível, sem perder nomes de arquivos ou informações ID3, e sem reencoding. Também suporta o arquivamento de dados que não são de áudio, como listas de reprodução, arquivos de informações e imagens de capa dentro do MP3. Esses arquivos podem ser descompactados posteriormente (usando mp3splt, por exemplo); decodificadores comuns de MP3 podem reproduzir todo o fluxo de áudio como uma faixa longa.

    
por 07.05.2012 / 11:26
2

Isto irá concatenar uma pasta cheia de MP3 em um único arquivo MP3:

1) Salve uma lista de arquivos MP3 para concatenar, por exemplo,

$ 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) Execute o seguinte comando ( -safe 0 is não é necessário se mylist.txt usar caminhos relativos ):

$ ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp3
    
por 17.05.2018 / 04:27
0

Se você precisa de scripts, provavelmente é melhor usar a solução ffmpeg. No entanto, se você precisar de um aplicativo para fazer coisas desse tipo, você pode experimentar o Audacity . É open source e multiplataforma. Eu não usei isso para juntar mp3s, mas eu usei isso para cortar seções de um mp3 e apagá-las no final. Eu estou disposto a apostar que você pode juntar mp3s e cross-fade-los uns aos outros com isso também.

    
por 24.07.2011 / 00:11
0

Se você quiser concatificar todos os arquivos mp3 do diretório atual:

function join_by { local IFS="$1"; shift; echo "$*"; }
files=(*.mp3)
ffmpeg -i "concat:'join_by "|" $files'" -acodec copy output.mp3
    
por 03.11.2018 / 10:25

Tags