Audio-ConvTools
view release on metacpan or search on metacpan
lib/Audio/ConvTools.pm view on Meta::CPAN
################################################################################
# Convert audiofiles from one format to another (ogg, mp3 or wav) #
# #
# Copyright (C) 2006 Michael Hooreman <michael_AT_mijoweb_DOT_net> #
################################################################################
#$Id: ConvTools.pm,v 1.3 2006-10-28 10:24:23 michael Exp $
=head1 NAME
Audio::ConvTools - API to convert audio files from/to mp3 ogg and wav
=head1 SYNOPSIS
use Audio::ConvTools;
use Audio::ConvTools qw/:DEFAULT :Tmp :Log/;
$status = ogg2mp3('file.ogg');
$status = ogg2wav('file.ogg');
$status = ogg2wav('in.ogg', 'out.wav');
$status = mp32ogg('file.mp3');
$status = mp32wav('file.mp3');
$status = mp32wav('in.mp3', 'out.wav');
$status = wav2ogg('file.wav');
$status = wav2ogg('in.wav', 'out.ogg');
$status = wav2mp3('file.wav');
$status = wav2mp3('in.wav', 'out.mp3');
Audio::ConvTools::logMsg('This is a log message');
Audio::ConvTools::errMsg('This is an error message');
$tmp = Audio::ConvTools::getTmpFile('.wav');
Audio::ConvTools::destroyTmpFile(\$tmp);
=head2 OBJECT INTERFACE
No object interface is defined
=head1 DESCRIPTION
C<Audio::ConvTools> provides miscellaneous tools to convert audio files between
Ogg Vorbis, MPEG III and Wav files. This is a function interface only.
By default, all the conversions functions are exported. You can also export
temporary file usage tools with the :Tmp tag, and logging tools with the :Log
tag.
Moreover, two scipts are provided with this package:
=over
=item *
audiocdmaker To brun audio CD
=item *
audioconv To convert audio files
=back
=head2 PROGRAMS USED
To do the conversions, this module uses the following linux programs:
=over
lib/Audio/ConvTools.pm view on Meta::CPAN
$outFile = "$1.wav" unless defined $outFile;
$status = system(
"mpg321 -w " . shell_quote($outFile) . " " . shell_quote($inFile)
);
return ($status==0);
}
sub ogg2wav($;$)
{
my $inFile = shift;
my $outFile = shift;
my $status;
($inFile =~ /^(.*)\.[Oo][Gg][Gg]$/) or do {
errMsg("$inFile is not an ogg vorbis file");
return 0;
};
$outFile = "$1.wav" unless defined $outFile;
$status = system(
"oggdec " . shell_quote($inFile) . " -o " . shell_quote($outFile)
);
return ($status==0);
}
sub wav2ogg($;$)
{
my $inFile = shift;
my $outFile = shift;
my $status;
($inFile =~ /^(.*)\.[Ww][Aa][Vv]$/) or do {
errMsg("$inFile is not an wav file");
return 0;
};
$outFile = "$1.ogg" unless defined $outFile;
$status = system(
"oggenc -q 10 -o " . shell_quote($outFile) . " " . shell_quote($inFile)
);
return ($status==0);
}
sub wav2mp3($;$)
{
my $inFile = shift;
my $outFile = shift;
my $status;
($inFile =~ /^(.*)\.[Ww][Aa][Vv]$/) or do {
errMsg("$inFile is not an wav file");
return 0;
};
$outFile = "$1.mp3" unless defined $outFile;
$status = system(
"lame -h " . shell_quote($inFile) . " " . shell_quote($outFile)
);
return ($status==0);
}
1;
__END__
#$Log: ConvTools.pm,v $
#Revision 1.3 2006-10-28 10:24:23 michael
#Updated my email address.
#Changed to version 0.08
#
#Revision 1.2 2006-10-28 10:12:45 michael
#Require File::Temp version 0.17
#New version 0.7
#
#Revision 1.1 2006-10-28 10:03:45 michael
#Added loss ConvTools.pm to the repos.
#
#Revision 1.1 2006/08/18 12:50:12 mhoo
#module is now Audio::ConvTool
#switched to version 0.06
#
#Revision 1.1 2006/08/18 12:36:22 mhoo
#AudioConvTools becomes Audio::ConvTools
#switched to v0.4
#
#Revision 1.6 2006/08/18 12:28:28 mhoo
#AudioConvTools becomes Audio::ConvTools
#switched to v0.4
#
#Revision 1.5 2006/08/18 11:59:19 mhoo
#Adapted MANIFEST (INSTALL is lost)
#Swith to version 0.03
#
#Revision 1.4 2006/08/18 11:56:35 mhoo
#Removed INSTALL (not needed)
#Switched to version 0.02
#
#Revision 1.3 2006/08/18 11:52:43 mhoo
#Tagged to version 0.01
#
#Revision 1.2 2006/08/18 11:49:12 mhoo
#Adapted manifest
#Tagging to version 0.9
#
#Revision 1.1.1.2 2006/08/18 11:46:27 mhoo
#Version 0.9 Ready for CPAN
#
( run in 1.721 second using v1.01-cache-2.11-cpan-39bf76dae61 )