Plagger::Plugin::Filter::FFmpeg #5
id:shimibow さんが Filter::FFmpeg のパッチを書いてくださいました 。いつもありがとうございます。これを参考に、以下の様な修正を行いました。
Index: lib/Plagger/Plugin/Filter/FFmpeg.pm
===================================================================
--- lib/Plagger/Plugin/Filter/FFmpeg.pm (revision 254)
+++ lib/Plagger/Plugin/Filter/FFmpeg.pm (revision 270)
@@ -51,15 +51,29 @@
$ff->input_options({ file => encode($encoding, $enclosure->local_path) });
my $output_file = File::Spec->catfile($self->conf->{dir}, "$file");
-
$ff->output_options({
-
my $output_options = { file => encode($encoding, $output_file), device => $self->conf->{device} || 'ipod', title => encode($encoding, $entry->title), author => encode($encoding, $entry->author), comment => encode($encoding, $entry->summary), %{ $self->conf->{options} || {} },
-
});
-
}; -
if ( $self->conf->{extra_options} ) { -
my %option_to_name = reverse %FFmpeg::Command::option; -
my @extra_options = split ' ', $self->conf->{extra_options}; -
for ( @extra_options ){ -
my $name = $option_to_name{$_}; -
delete $output_options->{$name} if defined $output_options->{$name} and $name; -
} -
$ff->output_options($output_options); -
$ff->options( @extra_options, @{ $ff->options } ); -
} -
else { -
$ff->output_options($output_options); -
} -
unless( -e $output_file ){ $context->log( info => 'Converting ' . $enclosure->filename . ' ...' ); my $result = $ff->exec();
extra_options で ffmpeg に渡す追加オプションを指定することができます。
それに合わせて、FFmpeg::Command に以下の修正を加えて 0.05 として CPAN にアップしてます。
Index: library/perl/trunk/FFmpeg-Command/lib/FFmpeg/Command.pm =================================================================== --- library/perl/trunk/FFmpeg-Command/lib/FFmpeg/Command.pm (revision 248) +++ library/perl/trunk/FFmpeg-Command/lib/FFmpeg/Command.pm (revision 266) @@ -3,5 +3,5 @@ use warnings; use strict; -our $VERSION = '0.04'; +our $VERSION = '0.05';use base qw( Class::Accessor::Fast Class::ErrorHandler );
@@ -11,5 +11,5 @@
use Carp qw( carp );-my %option = (
+our %option = (
format => '-f',
video_codec => '-vcodec',
%option を Filter::FFmpeg から参照するためなのですが、外部からオプション追加とかもできるようになって、便利なこともあるかな、と。