#!/usr/bin/perl
use strict;
use File::Copy;
my $ringtone_folder = "/home/users/mikey/ringtones";
my $mplayer = "/usr/bin/mplayer";
my $mplayer_opt = '-ao pcm '.$ringtone_folder.'/out.mp3 -ao pcm:file="'.$ringtone_folder.'/out.wav"';
my $faac = "/usr/bin/faac";
my $faac_opt = qq#$ringtone_folder/out.wav -o#;
my $mp3info = "/usr/bin/mp3info";
my $mp3info_opt = '-p "File:%f\nTitle:%t\nArtist:%a\nAlbum:%l\nTrack:%n\n"';
my $mp3splt = "/usr/bin/mp3splt";
my $mp3splt_opt = 'START END -o out.mp3 -d '.$ringtone_folder;
my $output;
my $command;
my $filename;
my $title;
my $artist;
my $album;
my $track;
my $file = shift;
my $input_start = shift;
my $input_end = shift;
my $start = "0.0";
my $end = "0.40";
if(!length($file) > 0){
print "USAGE: mp3tom4a.pl <filename> [START_TIME] [END_TIME]\n";
exit;
}
if(defined($input_start) && defined($input_end)){
if($start !~ /([0-9]+)\.([0-9]+)\.?([0-9]+)?/){
print "USAGE: mp3tom4a.pl <filename> [START_TIME] [END_TIME]\n";
print "Start Time: 00.00[.00]\n";
print "End Time: 00.00[.00]\n";
exit;
}
else{
$start = $input_start;
}
if($end !~ /([0-9]+)\.([0-9]+)\.?([0-9]+)?/){
print "USAGE: mp3tom4a.pl <filename> [START_TIME] [END_TIME]\n";
print "End Time: 00.00[.00]\n";
print "Start Time: 00.00[.00]\n";
exit;
}
else{
$end = $input_end;
}
}
$command = $mp3info.' '.$mp3info_opt.' "'.$file.'"';
$output = `$command`;
my @lines = split("\n",$output);
foreach (@lines){
if($_ =~ /Title:(.+)/){
$title = $1;
}
if($_ =~ /Artist:(.+)/){
$artist = $1;
}
if($_ =~ /Album:(.+)/){
$album = $1;
}
if($_ =~ /Track:(.+)/){
$track = $1;
}
}
$filename = lc($artist);
$filename .= "-".lc($title);
$filename =~ s/ /_/g;
if(!defined($title) && !defined($artist)){
print "\n\nUnable to find Artist and Track information!!!\n";
print "Please enter the filename (artist-this_is_the_song_name): ";
chomp($filename = <STDIN>);
}
$mp3splt_opt =~ s/START/$start/g;
$mp3splt_opt =~ s/END/$end/g;
$command = $mp3splt.' "'.$file.'" '.$mp3splt_opt;
system($command);
$command = "$mplayer $mplayer_opt";
print $command,"\n";
system($command);
$command = "$faac $faac_opt $ringtone_folder/1-$filename.m4a";
system($command);
move("$ringtone_folder/1-$filename.m4a","$ringtone_folder/$filename.m4r");
unlink("$ringtone_folder/out.wav");
unlink("$ringtone_folder/out.mp3");