Conversor de músicas
Publicado por Marlon Vagner Reck (última atualização em 05/01/2012)
[ Hits: 5.081 ]
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;
Script para monitorar os 10 processos que mais consomem CPU e Memória
Configuração do horário de verão 2006/2007 (Red Hat, Fedora)
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Assisti Avatar 3: Fogo e Cinzas (4)
Conky, alerta de temperatura alta (11)









