
Estou usando o macOS 10.3.6 (High Sierra) e, há algum tempo, eu tinha uma caixa de 4 CDs com algumas músicas, copiei as faixas para MP3 e simplesmente armazenei os arquivos no meu sistema. Tive que marcar manualmente e adicionar metadados a cada uma das mais de 100 faixas (não pergunte) e me livrei dos CDs originais há um tempo também (não pergunte também), então não posso copiar novamente facilmente eles.
Então aqui está o problema: Aparentemente, a ferramenta MP3 que usei na época adicionou uma fração de segundo “pop” ao início de cada faixa. Eu não sabia – ou não prestei atenção – na época, mas cada uma das mais de 100 faixas tem aquele pop irritante logo no início da faixa.
Eu li este tópico no Stack Overflow, “Clique no som no início ao usar LAME” e embora o conselho seja sólido - explicando como às vezes o LAME pode acidentalmente codificar o cabeçalho de um arquivo de áudio como áudio puro - a realidade é que as soluções apresentadas me forçariam a transmitir o MP3 já codificado através de algo comofseek
e então recodificar o MP3 (também conhecido como: transcodificá-lo), o que está longe do ideal.
Então, há alguma maneira de cortar cerca de 1/8 de segundo desses MP3s já codificados para me livrar do “pop” e evitar a transcodificação dos MP3s?
Estou procurando especificamente uma solução relativamente simples baseada em macOS que, no máximo, exigiria apenas a instalação de uma nova ferramenta (se necessária) via Homebrew. Não estou pedindo um script completo, mas pelo menos uma dica de ferramenta e configuração para me apontar na direção certa.
Responder1
Ok, consegui resolver isso usando a magia do FFmpeg (que já instalei no macOS via Homebrew). Especificamente o-ss
(também conhecido como: busca) parâmetrojuntamente com a copy
opção aplicada ao fluxo de áudio funciona perfeitamente! O comando pode ser resumido assim:
ffmpeg -ss 0.125 -i "input.mp3" -acodec copy "output.mp3"
Definir -ss
to 0.125
e simplesmente especificar a entrada e a saída com um copy
set to the -acodec
é tudo o que precisa ser feito.
E como - conforme explicado na pergunta - no meu caso, tenho mais de 100 arquivos para lidar, criei um script Bash simples que encontrará todos os MP3s que deveriam ter 1/8 do áudio de abertura cortado e os despejará em um mp3/
subdiretório. Espero que isso ajude alguém em uma situação semelhante!
find -E "path/to/audio/files" -type f -iregex ".*\.(MP3)$" |\
while read full_audio_filepath
do
# Break up the full audio filepath stuff into different directory and filename components.
audio_dirname=$(dirname "${full_audio_filepath}");
audio_basename=$(basename "${full_audio_filepath}");
audio_filename="${audio_basename%.*}";
# Set the MP3 directory.
mp3_dirpath="${audio_dirname}/mp3";
mp3_filepath="${mp3_dirpath}/${audio_filename}.mp3";
# Create the child MP3 directory.
mkdir -p "${mp3_dirpath}";
# And here is where the magic happens.
ffmpeg -y -v quiet -ss 0.125 -i "$full_audio_filepath" -acodec copy "$mp3_filepath" < /dev/null;
done