blob: 7f11690cffcdb587c8da0b422964642591dea852 [file] [log] [blame]
# Part of get-flash-videos. See get_flash_videos for copyright.
package FlashVideo::FFmpegDownloader;
use strict;
use warnings;
use base 'FlashVideo::Downloader';
use FlashVideo::Utils;
sub download {
my ($self, $ffmpeg_data, $file) = @_;
$self->{printable_filename} = $file;
my $executable;
# Look for executable (ffmpeg or avconv)
if (!is_program_on_path("ffmpeg")) {
if (!is_program_on_path("avconv")) {
die "Could not find ffmpeg nor avconv executable!";
} else {
$executable = "avconv";
}
} else {
$executable = "ffmpeg";
}
# Prepend the executable to the list of arguments
my @args = @{$ffmpeg_data->{args}};
unshift @args, $executable;
# Execute command
if (system(@args) != 0) {
die "Calling @args failed: $?";
}
# Return size of the downloaded file
return -s $file;
}
1;