我需要从不同页面捕获一个Web动画,需要至少50 FPS来捕捉平滑动画,phantomJS无法以50 FPS捕捉,所以,我播放动画x次慢,并使用setInterval每X ms循环并捕获使用phantomJS渲染图像。
另外,我需要大规模扩展,尝试并行执行页面,但没有运气。
在32核处理器中,64GB RAM Ubuntu机器只能并行处理25个这样的页面,大约需要20分钟才能完成,这实际上非常非常慢。
有任何改进建议吗?
代码示例,
page.open(system.args[1],function(status){
if(status=="success"){ // on successful page open
setTimeout(function(){ // wait 1 second, all js css to load
// get the number of frames
frames = 1000;
frame=0;
// loop every loop_interval milli seconds
var interval = setInterval(function() { // record each frame
// Render an image with the frame name
page.render('frame_' + frame + '.png', { format: "png",quality: '100' });
frame++;
// exit when all the frames recorded - video end
if(frames <=frame) {
clearInterval(interval);
phantom.exit();
} // if
}, loop_interval); // set interval
},1000); // set time out
}else{
console.log("Failed load page: "+system.args[1]+"\n");
phantom.exit();
} // ifelse status
}); // page.open