Skip to content.
Script > WavMp3Ogg > WavMp3Ogg01Versione

#!/usr/bin/perl 

#DATA:      17/03/2003
#AUTORE:   Vittorio Zuccala' <nathanvi@nathanvi.it>
#LICENZA:   GPL
#INSTALLAZIONE   Copia lo script nella cartella /bin come utente root 'cp Mp3WavOgg.txt /bin/Mp3WavOgg.pl'
#      Donagli i permessi 'chmod 511 /bin/Mp3WavOgg.pl'
#FUNZIONE:   Conversione file audio Mp3, Ogg, Wav
#USO:      Mp3WavOgg.pl DirDaConvertire [TipoConversione] [(yes||no)]
#PARAMETRI:   DirDaConvertire:   E' la directory nella quale ci sono i file audio da convertire
#               Ricorda di terminare con uno slash!!
#      TipoConversione:   Sono due lettere maiuscole (se si inseriscono in minuscolo
#               il programma le converte in automatico in maiuscole). Queste
#               lettere indicano il tipo di conversione che si desidera:
#               MW --> Mp3 to Wav
#               OW --> Ogg to Wav
#               WO --> Wav to Ogg
#               MO --> Mp3 to Ogg
#      yes||no:      Inserisci yes o no a seconda che desideri che vengano eliminati
#               i files che dovevi convertire dopo la conversione.
#               Questo parametro e' particolarmente utile sul "yes" se non si
#               dispone di un hard disk molto grande.
#COMMENTI:   Questo programma si puo' inserire nella cartella /bin ed eseguibile su sistemi linux.
#      Essendo un sostenitore del movimento Open Source spesso mi seccava il fatto che i miei
#      amici mi spedissero file Mp3. Anche la maggior parte dei file musicali su internet e'
#      in tale formato. Questo programma e' nato per convertire in formato Ogg (ovvero l'analogo
#      open del mp3) i file musicali. Il programma offre anche altri tipi di conversioni...
#DIPENDENZE:   Per utilizzare il programma, deve essere installato sulla propria macchina
#      oltre all'interprete "perl", il programma "mpg123" per convertire da mp3 a wav,
#      "oggenc" e "oggdec" per la conversione da e a ogg <--> wav.




#Verifica l'inserimento della cartella.
if($ARGV[0]=~/\//){
        
        $doppia=0;
        uc($ARGV[1]);
        lc($ARGV[2]);
        
        if($ARGV[1] eq "MW" || $ARGV[1] eq "OW" || $ARGV[1] eq "WO" || $ARGV[1] eq "MO"){
                $dirUSARE=$ARGV[0];
                $conv=uc($ARGV[1]);
                
                SCELTA:
                {
                        $scelta=1, last SCELTA if($conv eq "MW");
                        $scelta=2, last SCELTA if($conv eq "OW");
                        $scelta=3, last SCELTA if($conv eq "WO");
                        $scelta=4, last SCELTA if($conv eq "MO");
                }
                
                
                
                if($ARGV[2] eq "yes" || $ARGV[2] eq "no"){
                        $cancello=$ARGV[2];
                }
                else{
                        do{
                                print "\nEventualmente puoi specificare se desideri cancellare i file temporanei(yes | no)\n\n";
                                print "Desideri cancellare i file temporanei? (yes | no)\n";
                                chomp($cancello=<STDIN>);
                                
                        }while($cancello ne "yes" && $cancello ne "no");
                        
                        
                }   
        }
        
        else{
                
                $dirUSARE=$ARGV[0];
                
                do{
                        print "\n\n\nOltre al path puoi inserire le lettere in maiuscolo della conversione...\n";
                        print "Ad esempio se vuoi convertire da Wav a Ogg puoi scrivere: Mp3WavOgg.pl path WO\n";
                        print "Come ulteriore parametro puoi specificare se vuoi cancellare i file temporanei (yes | no)";
                        print "\nInserisci il numero della conversione che vuoi eseguire:\n";
                        print "1) MP3 --> WAV\n";
                        print "2) OGG --> WAV\n";
                        print "3) WAV --> OGG\n";
                        print "4) MP3 --> OGG\n";
                        print "5) WAV --> MP3\n";
                        
                        chomp($scelta=<STDIN>);
                }while($scelta!=1 && $scelta!=2 && $scelta!=3 && $scelta!=4 && $scelta!=5);
                
                do{
                        print "\n\n\nEventualmente puoi specificare se desideri cancellare i file temporanei(yes | no)\n";
                        print "Desideri cancellare i file temporanei? (yes | no)\n";
                        chomp($cancello=<STDIN>);
                        
                }while($cancello ne "yes" && $cancello ne "no");
                
        }
        
        
        &AssegnoVariabili;
        &Converto;
        
        print "FINE CONVERSIONE\n\n";
        
        
        
}

else{
        print "\n\n\nUTILIZZO: Mp3WavOgg.pl path/ [tipo_conversione] [yes | no]\n\n";
        print "Il path(SEGUITO DA UNO SLASH /) e' dove sono inseriti i files da convertire\n";
        print "tipo_conversione sono due lettere: WO OW MW MO (Wav-Ogg Ogg-Wav Mp3-Wav Mp3-Ogg)\n";
        print "l'ultimo parametro indica se vuoi cancellare i file prima della conversione ormai vecchi(yes || no)\n\n\n";
}


sub AssegnoVariabili
{
        
        if($scelta==1){
                $extINIZIO="mp3";
                $extFINE="wav";
        }
        elsif($scelta==2){
                $extINIZIO="ogg";
                $extFINE="wav";
        }
        elsif($scelta==3){
                $extINIZIO="wav";
                $extFINE="ogg";
        }
        elsif($scelta==4){
                $extINIZIO="mp3";
                $extFINE="wav";
        }
        elsif($scelta==5){
                $extINIZIO="wav";
                $extFINE="mp3";
        }
        else{
                print "\n\nScelta NON disponibile!!\n\n\n";
        }
}


sub Converto
{
        
        
        print "\nINIZIO CONVERSIONE FILE $extINIZIO TO $extFINE!! $cancello\n\n";
        
        opendir(DIR,"$dirUSARE");
        
        @files=readdir(DIR);
        sort(@files);
        
        
        foreach $file (@files){
                if($file=~/\.$extINIZIO$/){
                        ($nome,$extINIZIO)=split(/\./,$file);
                        print "STO CONVERTENDO $nome.$extINIZIO\n";
                        print "Aspetta....\n";
                        
                        $IN=join('.',($nome,$extINIZIO));
                        
                        $OUT=join('.',($nome,$extFINE));
                        
                        $IN=~s/ /\\ /g;
                        $IN=~s/\(/\\\(/g;
                        $IN=~s/\)/\\\)/g;
                        $IN=~s/\'/\\\'/g;
                        
                        $OUT=~s/ //g;
                        $OUT=~s/\(//g;
                        $OUT=~s/\)//g;
                        $OUT=~s/\_//g;
                        $OUT=~s/\'//g;
                        
                        if($scelta==1 && $cancello eq "yes" && $doppia){
                                system("mpg123 -w $dirUSARE/$OUT $dirUSARE/$IN");
                                system("rm -f $dirUSARE/$IN");
                                
                                system("oggenc $dirUSARE/$OUT");
                                system("rm -f $dirUSARE/$OUT");
                                $extINIZIO="mp3";
                                
                        }
                        
                        elsif($scelta==1 && $cancello eq "yes" && !$doppia){
                                system("mpg123 -w $dirUSARE/$OUT $dirUSARE/$IN");
                                system("rm -f $dirUSARE/$IN");
                        }
                        
                        
                        elsif($scelta==1 && $cancello eq "no"){
                                system("mpg123 -w $dirUSARE/$OUT $dirUSARE/$IN");
                        }
                        elsif($scelta==2 && $cancello eq "yes"){
                                system("oggdec $dirUSARE/$IN");
                                system("rm -f $dirUSARE/$IN");
                        }
                        elsif($scelta==2 && $cancello eq "no"){
                                system("oggdec $dirUSARE/$IN");
                        }
                        elsif($scelta==3 && $cancello eq "yes"){
                                system("oggenc $dirUSARE/$IN");
                                system("rm -f $dirUSARE/$IN");
                        }
                        elsif($scelta==3 && $cancello eq "no"){
                                system("oggenc $dirUSARE/$IN");
                        }
                        elsif($scelta==4){
                                $doppia=1;
                                &DoppiaConversione;
                        }
                        elsif($scelta==5 && $cancello eq "yes"){
                                system("lame $dirUSARE/$IN");
                                system("rm -f $dirUSARE/$IN");
                        }
                        elsif($scelta==5 && $cancello eq "no"){
                                system("lame $dirUSARE/$IN");
                        }
                        
                        
                        print "File $IN convertito!!\n\n\n\n\n\n\n";
                }
        }
        
        closedir(DIR);
}

sub DoppiaConversione
{
        $scelta=1;
        &AssegnoVariabili;
        &Converto;
        
        $scelta=3;
        &AssegnoVariabili;
        &Converto;
}

-- VittorioZuccala - 06 Jan 2005


Ultima versione: r1.1 - 06 Jan 2005 - 18:37 - Main.guest
 
Se riconosciuto dal sistema come utente: Main.guest