Conversor de músicas
Publicado por Marlon Vagner Reck (última atualização em 05/01/2012)
[ Hits: 4.842 ]
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;
ListPkg [Procura de pacote no Slackware]
Script de instalação do Squid 3 no Slackware
Limpar e mostrar tamanho da lixeira no Samba
Nenhum comentário foi encontrado.
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Jogando com Proton no LInux (0)
Ingress NGINX Controller CVSS base score of 9.8 (4)
Impossível corrigir problemas, você manteve (hold) pacotes quebrados. (2)