Como foi sugerido aqui , estou usando o cat
comando para concatenar vários arquivos .mp3 em um arquivo .mp3.
Imagine, eu tenho os seguintes arquivos .mp3 na pasta atual:
001001.mp3 001002.mp3 001003.mp3 001004.mp3 001005.mp3
ou assim:
096001.mp3 096002.mp3 096003.mp3 096004.mp3
Preciso concatenar esses arquivos .mp3 na sequência crescente, ou seja, 001001.mp3+001002.mp3+001003.mp3+etc.
Para juntar esses arquivos .mp3 em um, estou executando o seguinte comando na pasta atual:
cat *.mp3 > final.mp3
Testei o arquivo .mp3 final e é o que eu esperava, mas preciso ter certeza de que o comando acima seleciona os arquivos na sequência crescente.
Posso ter certeza de que o comando acima sempre concatena arquivos na sequência crescente?
Obrigado senhor !
fonte
find . -maxdepth 1 -iname '*.mp3' -print0 | sort -z | xargs -0 mp3wrap output.mp3
*.mp3
deve ser suficiente (e funciona com espaços).$ brew install mp3wrap
.*.mp3
é garantido preservar a ordem alfabética. Se os seus arquivos são nomeados09.mp3
,10.mp3
,11.mp3
, isso é provavelmente o que você quer. Se os seus arquivos são nomeados9.mp3
,10.mp3
,11.mp3
, que provavelmente não é o que você quer, mas você pode fazer`ls *.mp3 | sort -n`
.O mp3wrap parece ser uma solução decente o suficiente, mas quando reproduzi o arquivo resultante, o carimbo de data e hora não estava correto. Parece que o mp3wrap é melhor usado quando você está juntando mp3s em um arquivo que você sabe que deseja dividir mais tarde.
Eu simplesmente queria concatenar permanentemente alguns mp3s juntos. Acabei usando o ffmpeg para concatenar os arquivos:
Primeiro, instale o ffmpeg
Ubuntu 15.04+
Ubuntu 14.10 e abaixo
Vá para http://ffmpeg.org/download.html , baixe uma das construções estáticas, descompacte-a e copie para / usr / local / bin
ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3
Mais informações: https://trac.ffmpeg.org/wiki/Concatenate#protocol
https://superuser.com/a/314245
fonte
ffmpeg
está ausente, mas oavconv
substitui: askubuntu.com/questions/432542/…output.mp3
através de ummp3val
e você verá todos os tipos de erros que criarão problemas de reprodução no Chrome64 + (consulte bugs.chromium.org/p/chromium/issues/detail?id=794782 e bugs.chromium.org/p/chromium/ ? questões / detalhes id = 806601 # c10 )Como sugerido anteriormente,
mp3wrap
é uma boa solução. Pode não funcionar o tempo todo. Tanto quanto eu sei,mp3wrap
assume que todos os arquivos de entrada têm as mesmas características, como VBR vs CBR, taxa de bits e assim por diante. Se essa suposição não for atendida, é provável que falhe. Nesse caso, a única solução seria decodificar todos os arquivos mp3 para um formato bruto.wav
, concatená-los com um programa semelhantesox
e terminar recodificando tudo em mp3.fonte
Faz uma classificação alfabética com base em caracteres únicos. Isso significa que "01" vem antes de "1", pois nada tem um valor menor que um.
Aqui está um exemplo. Eu tenho um diretório com arquivos nomeados 1, 2, 3, 04, 05 e 06. Eles são arquivos de texto que contêm seus próprios nomes de arquivo:
Então, sim , será; mas você precisa garantir que todos os seus arquivos sejam preenchidos corretamente.
Essa linha bacana de script bash permitirá comparar visualmente os nomes dos arquivos, facilitando a detecção de erros:
Sua saída ficará assim:
Se não estiverem, você precisará preencher os nomes dos arquivos: O script Bash para preencher os nomes dos arquivos no StackOverflow explica como fazê-lo.
Editar. Vote na resposta de Oli, é muito melhor. : P
vou deixar o meu porque acrescenta algo, mas você deve usar a solução dele,
Lembre-se de que
sort
ainda classificará as coisas da maneira descrita acima, você ainda precisará preencher os nomes dos arquivos se eles não tiverem o mesmo comprimento.fonte
A maioria das pessoas está sugerindo
mp3wrap
, mas tem desvantagens: o arquivo gerado não informa todo o seu comprimento em alguns players e, portanto, não é possível procurar além desse ponto.mp3cat
faz o trabalho rápido e bem, tanto quanto eu posso dizer. Pode ser baixado em http://mulholland.xyz/dev/mp3cat/ e usado da seguinte maneira:outra possibilidade seria
sox
mas parece muito lento (possivelmente decodifica e re-codifica o áudio?)
fonte
Eu achei o marceneiro de serviço on - line muito bem e preservei o carimbo de data / hora correto (ao contrário do mp3wrap).
fonte
Você pode tentar usar um programa de edição de áudio dedicado (como o Audacity )
fonte
Adoro o comentário de bmaupin , mas ele pode produzir tipos naturais de (versão) números usando
sort -V
:e você não precisa lidar com caracteres especiais, como
' " () [] {}
no nome do arquivo.fonte