Conversor de músicas
Publicado por Marlon Vagner Reck (última atualização em 05/01/2012)
[ Hits: 5.047 ]
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;
Backup automático MySQL + arquivos do servidor web
Baixando os áudios dos vídeos do youtube - YAD
Instalador do pacote ubuntu-restricted-extras
Nenhum comentário foi encontrado.
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
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Trazendo de volta o Serviços em Segundo Plano no Plasma6









