如果我有一个包含像这样多个FLV文件的数组:如何使用FLV :: Splice模块合并多个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的确如此。 我一定要添加冗长每PARAM像这样:
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方法的重复使用,但不知何故,我认为它不会工作,我认为我被卡住了。那么,我会提醒自己下次不要轻易打扰别人。
我不知道什么是proccess是flvbind.exe做,但FLV :: Splice只会尝试合并这些文件,如果它不起作用,我不会感到惊讶......模块页面上的更多内容也是这样的:“如果片段具有不同的帧率,此工具也可能产生无法播放的内容。这取决于玩家的实现.'如果flvbind有一个编码过程,那么你应该坚持下去。 – Prix 2010-08-14 04:58:09
@Prix,感谢您的评论。是的,FLV :: Splice有时不起作用。但是我问是否有一种方法可以简化add_input方法的重复使用? – Mike 2010-08-14 05:18:10