Conversor de músicas
Publicado por Marlon Vagner Reck (última atualização em 05/01/2012)
[ Hits: 4.774 ]
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;
usando a lixeira em modo texto
Script para desmontar partição/unidade
Script Para Manutenção de usuários do Sistema
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Linux rodando do hd externo ou ssd? (2)
Firewall iptables - Rotear Interface Cliente (0)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta