あけおめ
素敵な feed を吐くようになったので書きなおした。
ffmpeg はキー入力をチェックしているのでバックグラウンドで動かせないみたい。無効にするオプションを追加すればいいのに。
なので、強引に
yes | ffmpeg -i ...
で回避した。これで寝ている間にサーバで(ry。
#!/usr/bin/perl use strict; use warnings; use utf8; use Readonly; use URI; use XML::Feed; use LWP::UserAgent; Readonly my $VIDEOSDIR => 'videos'; binmode STDOUT, ':utf8'; my $newfeed = XML::Feed->parse( URI->new('http://pulpsite.net/youravhost/rss_enclosure')) or die XML::Feed->errstr; my $ua = LWP::UserAgent->new(keep_alive => 1); mkdir $VIDEOSDIR unless -d $VIDEOSDIR; foreach my $entry ($newfeed->entries) { my ($file, $actress) = $entry->title =~ /(.+)\..+\s-\s(.+)と思われるYourAVHost/; my $dir = "$VIDEOSDIR/$actress"; mkdir $dir unless -d $dir; my $flv = "$dir/$file.flv"; my $mp4 = "$dir/$file.mp4"; next if -f $mp4; print $mp4, "\n"; my $resp = $ua->request( HTTP::Request->new(GET => $entry->{entry}->{enclosure}->{url}), $flv); $resp->is_success or die $resp->status_line; system "yes | ffmpeg -sameq -i $flv $mp4"; unlink $flv; }