如何使用FLV :: Splice模块合并多个FLV文件?

时间:2010-08-14 04:44:16

标签: perl flv

如果我有一个包含多个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方法的重复使用,但不知怎的,我认为它不起作用,我以为我被卡住了。好吧,我会提醒自己下次不要轻易打扰别人。

1 个答案:

答案 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;
相关问题