如果我有一個包含像這樣多個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