如果我有一个包含多个FLV文件的数组,如下所示:
my @src_files = qw (1.flv 2.flv 3.flv 4.flv 5.flv 6.flv 7.flv);我可以调用flvbind.exe作为外部命令行程序来执行合并,如下所示:
my $args = join(' ',@src_files);
my $dest_file = 'merged.flv';
system "flvbind $dest_file $args";但是FLV::Splice的用法示例如下:
use FLV::Splic;
my $converter = FLV::Splice->new();
$converter->add_input('first.flv');
$converter->add_input('second.flv');
$converter->save('output.flv');我似乎不知道如何像flvbind一样做同样的事情。我是否必须像这样详细地添加每个参数:
use FLV::Splice;
my $dest_file = 'merged.flv';
my $converter = FLV::Splice->new();
$converter->add_input('1.flv');
$converter->add_input('2.flv');
$converter->add_input('3.flv');
$converter->add_input('4.flv');
$converter->add_input('5.flv');
$converter->add_input('6.flv');
$converter->add_input('7.flv');
$converter->save("$dest_file");这看起来不像是正确的方式。我的意思是,我必须逐字添加每个参数吗?有没有办法简化add_input方法的重复使用?有什么建议吗?一如既往的感谢:)
更新:事实证明,这是一个愚蠢的问题。谢谢,@Eric给了我正确的答案。我想使用for循环来减少add_input方法的重复使用,但不知何故,我认为它不会起作用,我认为我被卡住了。好吧,我会提醒自己下次不要轻易打扰别人。
发布于 2010-08-14 13:15:42
减少重复是相当容易的:
$converter->add_input($_) for @src_files;或者将整个过程封装在一个子例程中:
sub flv_splice {
my $dest_file = shift;
my $converter = FLV::Splice->new();
$converter->add_input($_) for @_;
$converter->save($dest_file);
}
flv_splice 'merged.flv', @src_files;https://stackoverflow.com/questions/3482046
复制相似问题