Hallo,
ich hab eine Sammplung an WMAs, die ich gerne über Muggle archivieren möchte.
Dazu müßte ich vorher die Files entweder in mp3 oder ogg convertieren, da muggle die WMAs nicht verwendet.
Beim Convertieren sollen die Tag-Informationen erhalten bleiben.
im Netz bin ich auf folgenden Skript gestoßen:
Perl
#!/usr/bin/perl -w
#
#
#
#
use Audio::WMA;
my $INPUT='~/Musik';
my $BEFEHL;
my $artist;
my $title;
my $album;
my $year;
my $genre;
my $track;
my $comment = "Fancy Music Collection";
my $filename;
chdir $INPUT;
my @wmas = glob "*.wma";
foreach (@wmas) {
my $wma = MeinWMA->new($_);
my $tags = $wma->tags();
rename $_ , "TEMP.wma";
print "\n +++ Beginne Konvertierung für: $_... \n\n";
$BEFEHL = "ffmpeg -i TEMP.wma -vn -ab 256 -ar 44100 -acodec mp3 TEMP.mp3";
qx($BEFEHL);
print "\n +++Konvertierung für: $_ abgeschlossen. \n ";
print "\n +++Lese Tags ein für: $_ \n\n";
$artist = $tags->{"AUTHOR"};
$track = $tags->{"TRACKNUMBER"};
$album = $tags->{"ALBUMTITLE"};
$title = $tags->{"TITLE"};
$genre = $tags->{"GENRE"};
$year = $tags->{"YEAR"};
print "\n +++Schreibe Tags in Datei... \n\n";
$BEFEHL = "id3v2 --artist \"$artist\" TEMP.mp3";
qx($BEFEHL);
$BEFEHL = "id3v2 --track \"$track\" TEMP.mp3";
qx($BEFEHL);
$BEFEHL = "id3v2 --album \"$album\" TEMP.mp3";
qx($BEFEHL);
$BEFEHL = "id3v2 --song \"$title\" TEMP.mp3";
qx($BEFEHL);
$BEFEHL = "id3v2 --genre \"$genre\" TEMP.mp3";
qx($BEFEHL);
$BEFEHL = "id3v2 --year \"$year\" TEMP.mp3";
qx($BEFEHL);
$BEFEHL = "id3v2 --comment \"$comment\" TEMP.mp3";
qx($BEFEHL);
print "\n +++Tags werden in Datei geschrieben... \n\n";
print "\n +++Datei wird umbenannt.. \n\n";
$filename = "$track" . " - " . "$title" . " - " . "$artist" . " - " . "$album" . " - " . "$year" . ".mp3";
$filename =~ s/\*/_/g;
$filename =~ s/\|/_/g;
$filename =~ s/\\/_/g;
$filename =~ s/:/_/g;
$filename =~ s/\"/_/g;
$filename =~ s/\>/_/g;
$filename =~ s/\</_/g;
$filename =~ s/\?/_/g;
$filename =~ s/\//_/g;
rename "TEMP.mp3" , $filename;
print "\n +++$filename fertig erstellt. \n\n";
print "\n +++Räume auf... \n";
unlink "TEMP.wma";
}
Alles anzeigen
Nur, wenn ich diesen Skript verwende, bekomme ich eine Fehlermeldung:
Code
Can't locate Audio/WMA.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at ./wma2mp3-2.sh line 6.
BEGIN failed--compilation aborted at ./wma2mp3-2.sh line 6.
Kann mir jemand helfen? Was fehlt hier, oder gibts nen andern/besseren/eleganteren Weg?