我正在尝试将动画(使用html和javascript完成)渲染到视频中。我想在我的后端做这件事。所以我选择PhantomJS就是出于此目的。我有一个10秒的测试动画。我尝试录制前2秒的动画并将它们转储到png文件中。假设我想每秒生成24帧,持续2秒(即总共48帧)。
我的期望是,如果我将图像文件合并到视频中,我将获得前2秒的动画,但发生的事情是我得到8-10秒的动画,即带有坏的fps。我记录了时间,发现每个渲染时间超过1000/24毫秒。因此浏览器移动得更快,帧被跳过。有没有办法可以停止浏览器时间或回到过去。像
一样的东西
page.goto(t = 041 ms)
渲染();
page.goto(t = 082 ms)
render()
......等等。
以下是我正在使用的代码
function snap(i){
if(i<=numFrames){
var ctr=10+i;
var renderstart = new Date().getTime();
page.render("frames/frame"+ctr+".png");
var renderend = new Date().getTime();
console.log("time taken for rendering single--"+(renderend-renderstart));
window.setTimeout(function(){
snap(++frameCount);
},1);
}else{
var end = new Date().getTime();
console.log("Time taken = "+(end-start));
phantom.exit();
}
}