You're right, I must have gotten mixed up in the process. The command works as you indicated. Thank you everyone for your help.
Here's my final working code for completeness
#! /usr/bin/perl
use warnings;
use strict;
use IPC::Run qw(run timeout);
my $from_file = '/home/product/ftp-temp/long.mov';
my $tmp_to = '/home/product/ftp-temp/out.wav';
my $in;
my $out;
my $err;
my @cmd = ('/usr/bin/ffmpeg','-y','-i', $from_file, $tmp_to);
eval {
#16 seconds is long enough to convert about 288 minutes of audio
#Current server converts about 18 minutes per second of runtime.
#production version will use custom timeout based on expected
#lengths of material.
run \@cmd, \$in,\$out,\$err, timeout(16, exception=>'timeout');
};
if ($@ =~ /timeout/) {
print "Timed out...\n\n";
} else {
print "\n\nCompleted Task\n\n";
}
|