[LAU] mp3tom4a via find and ffmpeg
David
dplist at free.fr
Fri Aug 12 18:52:05 UTC 2011
On Fri, 12 Aug 2011 13:42:36 -0400
Paul Davis <paul at linuxaudiosystems.com> wrote:
> I strong, STRONGLY *STRONGLY recommend *not* doing file manipulations
> on audio files inside the shell. the proliferation of what once would
> have been considered "wierd" names for files makes this extremely
> "risky". it is very hard to prevent the shell from somehow getting
> stuff wrong when the filenames can include ' or " or $ themselves.
>
> use perl or python to do what you want, and thus avoid every issue
> with shell globbing etc.
You're right Paul, of course. So here is the hopefully safe Perl
version :
#!/usr/bin/perl
use warnings;
use strict;
use File::Find;
use File::Copy;
sub wanted {
my $input = $File::Find::name;
return unless (-f $input);
return unless ($input =~ m/\.mp3$/);
my $output = $input;
$output =~ s/\.mp3$/.m4a/;
File::Copy::copy($input, "/tmp/i.$$");
`ffmpeg -i /tmp/i.$$ -y -acodec libfaac -ab 192k /tmp/o.$$`;
rename("/tmp/o.$$", $output);
unlink("/tmp/i.$$");
}
File::Find::find({wanted => \&wanted}, '.');
-- David.
More information about the Linux-audio-user
mailing list