25
avril 2018

Convertendo bitrate de arquivos MP3 em lote mantendo nomes e outros atributos

Escrito por Mario Medeiros não comentários

E eis que um belo dia seu aparelho celular ou smartphone (tanto faz), lhe alerta que você não tem mais espaço para colocar nem mesmo uma musiquinha do tamanho da vinheta de programa televisivo de domingo.

Seu poderoso AiFoni já ocupou todo seu 1 bit (é isso mesmo, bit, não é Yota Bytes não) de armazenamento. Tá bom, tá bom, exagerei um pouco.

Mas o cenário é o seguinte: tudo que é mp3 que tem no seu aparelho móvel está em 320kbp/s, ocupando mais espaço que o necessário. Imagina ter uns 32 GB só de MP3, tudo em alta qualidade. Até aí tudo ótimo. Na verdade não é bem assim. Outros recursos começam a brigar para ocupar os réles mega bytes, até mesmo kilo bytes de espaço que estão misteriosamente, desaparecendo.

Vamos resolver isso, apagar tudo que é inutilidade do treko. Começando pelas fotos tiradas no carnaval, quando você estava fantasiado de melancia com farinha na praia, mas espera ai, essas fotos já foram retiradas/copiadas por medida de segurança, claro.

Xiiiiii, então ficaram os aplicativos. Fácil!! Remove os inúteis!!!

Tá bom, aqueles aplicativos de astrologia e auto-ajuda não podem sair. São “extremamente necessários e importantes” para você. Entendo. Então apaga tudo os seus mp3 de fanqui, de sertanojo breganejo, electro-brega e afins.

Não?? Não pode também??? Tá certo!! Gosto não se discute, se lamenta!!

Mas então que tal, liberar espaço no treko, sem apagar as fotos de qualidade duvidosa, os aplicativos “sérios” e manter seus mp3 de “alto nível”? Gostou da idéia? Então vamos fazer o seguinte: reduzir o tamanho dos MP3s sem perda perceptível de qualidade de áudio (qualidade de áudio, não das músicas em si. Esse é um outro problema, fora desse escopo).

Reduzir o bitrate de cada uma das músicas, vai reduzir até mais da metade do tamanho dos arquivos e liberar espaço necessário no aparelho.

Lembrando que deverá apagar os arquivos originais e colocar os outros convertidos.

Infelizmente, da forma que solucionei esse problema, não faz o próprio arquivo no aparelho reduzir de tamanho por mágica. Não é essa a idéia!!

Um script em shell lista os arquivos e os converte, copiando em outro diretório, mantendo os atributos do mesmo, mudando somente o bitrate e consequentemente seu tamanho.

O script está comentado cada linha, facilitando o entendimento, espero.

Adapte de acordo com suas necessidades. Melhorias e críticas são bem-vindas.

Segue abaixo o script:

###############################################

#!/bin/bash
#
#Descricao: script conversor de bitrate em mp3 - vários diretórios em lote.
#resultado final: diretorios e arquivos novos, conservando os nomes originais
#como subdiretorios do diretorio de nome 128 (bitrate convertido a 128 kbp/s)
#
#O script le um diretorio/subdiretorio com arquivos mp3 e gera uma lista
#em arquivo txt. Nesta lista há somente o nome do diretório, não seus arquivos.
#A partir desta lista, gera o diretório 128 com subdiretório como nome original.
#
#O script lê cada diretório listando somente os arquivos com extensão mp3 e
#converte os mesmos para bitrate 128 kbp/s, mantendo o nome original e os
#metadados ID3 ou ID2, se houver.
#
#Dependências: biblioteca lame, sed (este último não sendo obrigatório - leia
#a linha onde ele é utilizado e veja se é realmente necessário).
#
#Observação 0: manter aspas simples e duplas como estão dispostas no script
#Observação 1: o script segue a seguinte ordem:
#o ls com parâmetros, lê o diretório raiz onde se encontra o script, grava a
#saída em arquivo texto, usa o cat com while fazer um loop de leitura e envia
#para o echo gerar o script com os dados do arquivo txt gerado no início.
#ao final, gera o arquivo com os parâmetros e comandos do lame converter os
#arquivos mp3, criando os diretórios específicos e respectivos de cada diretório
#original.
#ao término de cada diretório, inicia-se a criação do próximo e a conversão
#dos respectivos arquivos mp3, até o final da lista.
#Observação 2: é recomendado remover os arquivos txt e sh gerados pelo script,
#uma vez que por qualquer motivo, rodar este script novamente no mesmo diretório
#estes mesmos arquivos poderão conflitar com o comandos do script gerador.
#
#Data: 2018-04-24
#Autor: Mario Medeiros
#Versao: 0.1
############################################################################
############################################################################

#lista somente os diretórios do diretório raiz do script
#gera o arquivo com os nomes do diretórios em lista
ls -F | grep "/" > lista-dir.txt

#cat lê o arquivo com a lista dos diretórios gerado pelo ls
#o echo grava no arquivo lista-dir.txt os parâmetros do script para iniciar a
#conversão dos arquivos
cat lista-dir.txt | while read line
do
echo 'mkdir -p "128/'$line'" && cd "'$line'" ; for f in *.mp3 ; do lame --mp3input -b 128 "$f" "../128/'$line'"/"$f" ; done
cd ..' >> 666-converter.txt
done

#script gerado, em formato txt, é copiado com extensão sh
cp 666-converter.txt 666-converter.sh &&

#o sed adiciona a instrucao no arquivo para ser um shellscript
#é mais um detalhe do que uma obrigatoriedade.
#tentando deixar o mais legal possível
sed -e '1i\' -e '#!/bin/bash' -i 666-converter.sh &&

#deixa o arquivo executável
chmod +x 666-converter.sh &&

#executa o script para iniciar a conversão dos mp3s
./666-converter.sh

Categorizado em : Linux Tags : sem tags

Escrever um comentário

Dígite o terceiro caráter da palavra im5xq ? :