如果我有一个包含多个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方法的重复使用,但不知怎的,我认为它不起作用,我以为我被卡住了。好吧,我会提醒自己下次不要轻易打扰别人。
答案 0 :(得分:3)
减少重复是相当容易的:
$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;