Conversor de músicas
Publicado por Marlon Vagner Reck (última atualização em 05/01/2012)
[ Hits: 5.110 ]
Homepage: www.linkedin.com/in/marlonreck
O shell-script a baixo, foi feito a pedido de um colega que precisava converter algumas músicas de wma para mp3, para estudar para o vestibular.
Ele foi feito com zenity e ffmepg e ainda conta com funções com retorno para o fluxo do programa e um menu com ida e vinda.
#!/bin/bash
######################################
#Script para converter múscisas #
# #
#Criado: 03/12/2011 #
#Autor: Marlon V. Reck #
#e-mail: marlonreck@hotmail.com #
######################################
#variaveis
contador=0
totalarq=0
cont=0
g_retorno=tela_original
function baybay {
local retorno="$1"
test "$retorno" -eq 1 && exit
}
#verifica se é arquivo ou diretório
function verifica_diretorio {
local dir="$diretorio"
local ori="$original"
local verifica
for verifica in "$dir"/*."$ori";do
if [ -f "$verifica" ]; then
g_retorno=tela_novof
else
zenity --error --text="Arquivo não encontrado no diretório indicado.\nTente novamente!" --title="Conversor de música";
g_retorno=tela_diretorio
fi
done
}
#verifica se os formatos são iguais
function verifica_extensao {
local arqorig="$original"
local arqnovo="$novoformato"
if [ "$arqorig" = "$arqnovo" ]; then
zenity --error --text="Os formatos escolhidos são iguais.\nTente novamente!" --title="Conversor de música";
g_retorno=tela_novof
else
g_retorno=tela_qualidade
fi
}
while [ "$g_retorno" != fim ]; do
case "$g_retorno" in
tela_original)
#tela para escolha do arquivo que vai ser convertido
original=$(zenity --list --height=280 --title "Conversor de música" --text "Formato original" --radiolist --column "Marque" --column "Extensão" TRUE wma FALSE flac FALSE ogg FALSE wav FALSE mp3 FALSE aac FALSE flv)
baybay "$?"
g_retorno=tela_diretorio
;;
tela_diretorio)
#tela para escolher onde esta o arquivo
diretorio=$(zenity --file-selection --directory --title="Selecione o diretório dos arquivos "$original"." --file-filter="*.$original")
baybay "$?"
verifica_diretorio "$diretorio" "$original"
;;
tela_novof)
#tela para escolher o novo formato do arquivo
novoformato=$(zenity --list --height=280 --title "Conversor de música" --text "Novo formato" --radiolist --column "Marque" --column "Extensão" FALSE wma FALSE flac FALSE ogg FALSE wav TRUE mp3 FALSE aac FALSE flv)
baybay "$?"
verifica_extensao "$original" "$novoformato"
;;
tela_qualidade)
#tela para escolher a qualidade do arquivo
qualidade=$(zenity --list --height=280 --title "Conversor de música" --text "Escolha a qualidade do arquivo convertido" --radiolist --column "Marque" --column "kbps" FALSE 64 FALSE 96 TRUE 128 FALSE 192 FALSE 256 FALSE 320)
baybay "$?"
#contador de arquivos
for contador in "$diretorio"/*."$original";do let totalarq++; done
#acrescenta +1 no total de arquivos
totalarq=$((totalarq+1))
#conversão
if [ "$novoformato" = "ogg" ]; then
codec="-acodec libvorbis"
else
codec="-acodec libmp3lame"
fi
for nome in "$diretorio"/*."$original"; do
# echo para montar a barra de progresso
echo "# Convertendo "$nome""
echo $((++cont * 100/$totalarq))
#pega o nome do arquivo sem extensão
x=$(echo "$nome" | cut -f1 -d".")
ffmpeg -loglevel quiet -i "$nome" -f "$novoformato" $codec -ab "$qualidade""k" -ar 44100 "$x"."$novoformato"
done | zenity --progress --auto-close --width 290 --no-cancel --title="Convertendo "$original" para "$novoformato""
g_retorno=fim
;;
esac
done;
Echoc (Comando echo, mas com cores)
Atualizador de sistema multipla escolha
Verificar status de carga da bateria do notebook
Nenhum comentário foi encontrado.
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Vou destruir sua infância:) (8)
Interface gráfica com problema (2)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)









