Conversor de músicas
Publicado por Marlon Vagner Reck (última atualização em 05/01/2012)
[ Hits: 4.793 ]
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;
Ajuda a usar o comando ln [SCRIPT]
Simples dialog script para escolha de gerenciador de janelas
Instalação do BrOffice.org 3.2.1 em distros Debian-like
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Arch Linux - Guia para Iniciantes (0)
Dificuldade para renderizar vídeo no kdenlive (6)
xubuntu sem sons de eventos (3)
Erro ao iniciar serviço samba4 como novo dc em um ambiente com ad [RES... (9)