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 から参照するためなのですが、外部からオプション追加とかもできるようになって、便利なこともあるかな、と。