Lame on multiple mp3 files 2

Αλέξανδρος Διαμαντίδης adia at hellug.gr
Mon Dec 19 01:59:35 EET 2005


Πριν από 20 μέρες είχα γράψει:

> > Αν μας πεις ακριβώς με ποιες εντολές κάνεις την επανακωδικοποίηση ενός
> > αρχείου mp3, θα ξαναστείλω το σκριπτάκι ώστε να κάνει ακριβώς αυτό που

Κάλλιο αργά παρά ποτέ (συγνώμη, το είχα ξεχάσει)...

(και ναι, δουλεύει ακόμα και όταν τα αρχεία έχουν newline στα ονόματά τους)

#!/usr/bin/perl -w

use File::Find;
use Getopt::Std;

our($opt_b);
getopts('b');
HELP_MESSAGE() if $#ARGV < 0;

while ($current = shift @ARGV) {
	print "Entering directory $current\n";
	File::Find::find({wanted => \&wanted}, $current);
}

sub wanted {
        return if -d $_ or not /\.(mp3|wav)/i;
        system('cp', $_, "$_.bak") if $opt_b and not -e "$_.bak";
        system('lame', '-b160', '-h', '-mj', $_) == 0
		or die "\nFailed on $_: $?";
        system('mv', "$_.mp3", $_);
}

sub HELP_MESSAGE {
        die <<EOF;
Usage: $0 [-b] [DIRECTORY]...

Re-encode all .mp3 and .wav files contained in directories
  -b: leave back-up copies of files (as <file>.bak)
EOF
}




More information about the Migrate2linux mailing list