Conversor de músicas
Publicado por Marlon Vagner Reck (última atualização em 05/01/2012)
[ Hits: 5.103 ]
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;
Logs do daemontools - tradução de timestamp
vid2mp3 - extrai áudio em mp3 de arquivos de vídeo com mplayer
Script para adicionar chave pública
Reiniciar modem via Shell Script
Nenhum comentário foi encontrado.
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Quando vocês pararam de testar distros? (12)
Problema com som no laptop (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









