iPod touch向けのニコニコ動画のPodcastを生成するのときは、Filter::FFmpegを直接いじってたのだけど、
あまりかっこよくないので、FLV::Infoで情報を取り出す部分だけを、別のプラグインに分けました。
FLV::Infoでとりだした情報を$entry->meta->{flvinfo}に突っ込んでるだけ。以下のようにして、Rule::Expressionで分岐させるのに使えます。
plugins: - module: Subscription::Config config: # 略 - module: Filter::FetchNicoVideo config: # 略 - module: Filter::FLVInfo - module: Filter::FFmpeg rule: expression: "$args->{entry}->meta->{flvinfo}->{aspect} eq '4:3'" config: # アスペクト比が4:3の時の設定をここに書く - module: Filter::FFmpeg rule: expression: "$args->{entry}->meta->{flvinfo}->{aspect} eq '16:9'" config: # アスペクト比が16:9の時の設定をここに書く
これで修正してない元のFilter::FFmpegを使っても、FLVサイズに合わせた設定の場合分けが可能になりますね。ただし、ruleに書く条件は排他になってないと、何回も動画変換が走って大変うざい感じになります。
# ていうかFilter::FFmpegに直接option_string渡すように変えたのなんでだっけな?
とりあえず、CodeReposに上げといた。新認証/Cookie認証に対応にしたFetchNicoCastもCodeReposに上げるのが良いかな?