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
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...
#!/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 "
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
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)
Problemas ao instalar o PHP (10)
Descompactar arquivos winrar no linux (9)
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (12)