Converter Wav para MP3 usando Lame e PPSS para multi processamento via shell script - Asterisk

Publicado por Magno BRasil (última atualização em 13/11/2016)

[ Hits: 4.565 ]

Homepage: www.magnobr.info

Download wav_to_mp3.sh




Esse script é utilizado para conversão dos arquivos WAV em MP3, de forma automática pelo sistema ou parâmetros do usuário.
O script irá verificar se o Lame está instalado e o PPSS, caso não estejam ele instalara.

Esse script irá converter todas as ligações realizadas no dia anterior para o formato mp3 e excluindo as no formato wav, economizando espaço em disco.

OBS.: para utilizar o script de forma manual comentar as linhas 43,44,46 e inserir os dados nas linhas 53 e 56 e descomentar.

Comentários e sugestões para melhorar o script serão sempre bem vindos.


Agradeço ao Eduardo Rebelo Lopes pelo script criado em 10/01/2013 que pode ser acessado no endereço -
https://www.vivaolinux.com.br/artigo/Processamento-Paralelo-em-Shell-Script-Conversao-de-Arquivos-WA...

  



Esconder código-fonte

#!/bin/bash

######################################################################
#
#convert_wav_mp3.sh - Script para converter arquivos WAV em MP3        #
#
#Autor - Magno Brasil - magno@magnobr.info
#Criação - 11/10/2016 - v.1.0
#
#----------------------------------------------------------------------
#
#Esse programa é utilizado para conversão dos arquivos WAV em MP3,
#utilizando parametros do sistema ou parametros do usuario.
#
#Esse script deve ser executado 00:01 e irá converter todas as ligações realizadas
#no dia anterior
#
#OBS - Para utilizar o script de forma manual comentar as linhas 43,,44,46
#e inserir os dados nas linhas 53 e 56 e descomenta-las.
#
#
#
#Agradeço ao Eduardo Rebelo Lopes pelo script criado em 10/01/2013
#que pode ser acessado no endereço - 
#
#https://www.vivaolinux.com.br/artigo/Processamento-Paralelo-em-Shell-Script-Conversao-de-Arquivos-WAV-para-MP3/
#
########################################################################

datainicial=`date +%s`


######### Verificicando se o LAME já está instalado

lame_instalado=`whereis lame`;

if [ "$lame_instalado" != "lame:" ]; then

        echo -e "PPSS já instalado !!!\n\n"

else

        echo -e "Instalando o PPSS !!!\n\n"
                wget wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/ppss/ppss-2.97.tgz
                rpm -ivh lame-3.98.4-1.el6.rf.x86_64.rpm
                rm -f lame-3.98.4-1.el6.rf.x86_64.rpm
                echo -e "LAME instalado com sucesso!!!\n\n"
fi


######### Verificicando se o PPSS já está instalado

ppss_instalado=`whereis ppss`;

if [ "$ppss_instalado" != "ppss:" ]; then

        echo -e "PPSS já instalado !!!\n\n"

else

        echo -e "Instalando o LAME !!!\n\n"
                wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/lame-3.98.4-1.el6.rf.x86_64.rpm
                tar xvzf ppss-2.50.tgz -C /usr/local/bin
                chown root:root /usr/local/bin/ppss && chmod a+rx /usr/local/bin/ppss
                echo -e "PPSS instalado com sucesso!!!\n\n"
fi


############################################################
#diretorio raiz das gravações
diretorio_raiz=/var/spool/asterisk/monitor

#Para executar as conversões de forma manual
#comente as linhas abaixo e coloque a data
#nos campos descritos

############################################################
#Para executar de formar automatica, não comentar

dia_atual=`date +"%d"`;
mes_ano_atual=`date +"%m-%Y"`;

let dia_atual=$dia_atual-1; #comando para a data do dia anterior


##################################################################
##################################################################
#Para executar de forma manual, descomentar e setar as datas abaixo

#Colocar o dia_atual no formato 1-31 sem o zero inicial
#dia_atual=3

#Colocar o mes_ano_atual no formato mm-YYYY, não esquecer o -
#mes_ano_atual=10-2016

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


data_atual=$dia_atual-$mes_ano_atual

diretorio_final=$diretorio_raiz/$mes_ano_atual/$data_atual

cd $diretorio_final

tamanho_diretorio=`du -hs .`


#Criando lista com os arquivos .wav
ls | grep wav > /tmp/lista_arq.txt

path_arquivo=$mes_ano_atual/$data_atual/

contador=`ls | wc |  cut -d " " -f3-7`;


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


 echo -e "#Total de arquivos a serem convertidos $contador\n\n" >> /tmp/lista_arq.txt


 echo -e "############################################################\n"
 echo -e "Iniciando Conversão de $contador Arquivos ----- \n\n"
 echo -e "############################################################\n"


cd /usr/local/bin

#Comando para realizar a conversão dos arquivos - O LAME deve estar instalado.
#O PPSS também deve estar instalado pra multi processamento

./ppss -d $diretorio_final -c 'BASENAME=`basename "$ITEM" .wav`; lame --quiet --preset insane "$ITEM" "$OUTPUT_DIR/$BASENAME.mp3"' -o $diretorio_final


cd $diretorio_final


 echo -e "############################################################\n"
 echo -e "Conversões realizadas com sucesso $contador --------- \n\n"
 echo -e "############################################################\n"


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

 echo -e "############################################################\n"
 echo -e "Removendo arquivos wav    --------- \n\n"
 echo -e "############################################################\n"

rm -f *.wav;


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

tamanho_diretorio_atual=`du -hs .`;

mv /tmp/lista_arq.txt $diretorio_final/bkp
mv /tmp/atualiza.sql $diretorio_final/bkp
mv /tmp/roolback.sql $diretorio_final/bkp
mv /tmp/script_roolback.sh $diretorio_final/bkp


#######################################################################################
##################
# As linhas abaixo são para pegar os arquivos de log do PPSS e colocar na pasta da conversão

mkdir $diretorio_final/logs

mv /usr/local/bin/ppss_dir/* $diretorio_final/logs

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

echo "####################################################################"
echo "####################################################################"
echo "##                                                                ##"
echo "##                                                                ##"
echo "## TODAS AS CONVERSÕES FORAM REALIZADAS COM SUCESSO!!!            ##"
echo "##                                                                ##"
echo "##  O ESPAÇO UTILIZADO ERA DE $tamanho_diretorio"
echo "##  O ESPAÇO DO DIRETORIO ATUAL E DE $tamanho_diretorio_atual"
echo "##  FORAM CONVERTIDOS $contador ARQUIVOS                          ##"
echo "##                                                                ##"
echo "##                                                                ##"
echo "####################################################################"


datafinal=`date +%s`
soma=`expr $datafinal - $datainicial`
resultado=`expr 10800 + $soma`
tempo=`date -d @$resultado +%H:%M:%S`
echo " Tempo gasto: $tempo "


Scripts recomendados

Criando Máquina Virtual

Firewall Iptables

Monitoração e coleta de dados de performance de servidores GNU/Linux

Migração de Aplicações para Ambiente Web - Uma Abordagem Prática

Monitorar status de transferência das interfaces de rede


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts