Crie um script em lote SOX para extrair os primeiros 15 segundos e renomear vários arquivos na pasta

2

Eu tenho uma pasta com vários arquivos MP3 que eu preciso extrair 10-15 segundos de áudio. Eu também gostaria de renomeá-los adicionando sample- (name) .mp3 aos arquivos convertidos.

Como posso fazer isso via Shell Script?

    
por Designs Edge 15.05.2015 / 05:15

1 resposta

2

Se você quiser / precisar usar sox para isso, use o comando trim :

for i in *.mp3
do 
  sox "$i" sample-"$i" trim 0 10
done

A divisão também pode ser feita com o utilitário de linha de comando que faz parte do mp3splt . Você define explicitamente o arquivo de saída com -o , para que os originais não sejam tocados, basta removê-los depois de terminar com eles. Isso permite incorporar tags definidas no arquivo no nome de saída do que sox (o que você não parece precisar agora):

for i in *.mp3
do 
  mp3splt "$i" 00.00.00 00.10.00 -o sample-"${i%.mp3}"
done

Observe que -o normalmente funciona com diretivas baseadas em @ para incluir elementos de tag no nome de saída e anexa .mp3 . Sem ${i%.mp3} você obteria .mp3.mp3 arquivos.

Os horários são separados por pontos, não tente usar : , você recebe uma mensagem de erro menos que útil de que não tem pontos de divisão suficientes.

Eu não removerei os arquivos de entrada até que você tenha testado se os scripts funcionam. Observe também que, se você parar a metade ou adicionar arquivos posteriormente, não será possível executá-la novamente sem remover nenhum arquivo sample- primeiro. Você pode querer especificar um diretório antes de sample-... , para manter as coisas separadas.

    
por 15.05.2015 / 06:18