Conversor de músicas
Publicado por Marlon Vagner Reck (última atualização em 05/01/2012)
[ Hits: 4.915 ]
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;
Calculadora para eletrodomésticos
Bloquear Whatsapp, Facebook, Youtube e outros pelo IPTABLES
Organizar seus arquivos por pastas
Nenhum coment�rio foi encontrado.
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Um modo leve de ouvir/ver áudio/vídeo da internet em máquinas pererecas
Resolver algumas mensagens de erro do SSH
Instalar módulo de segurança do Banco do Brasil Warsaw do tipo .run
Sem espaço na partição home (2)
O que você está ouvindo agora? [2] (190)
Procrastinação e autossabotagem são problemas muito comuns na sociedad... (5)
warsaw parou de funcionar após atualização do sistema (solução) (10)