我在从phantomjs网站截图制作视频时遇到问题。
phantomjs没有为同一秒内的所有帧制作截图,甚至不是所有秒段,都有巨大的丢失帧。
结果是高速视频播放视频效果中的许多跳跃。
test.js:
var page = require('webpage').create(),
address = 'http://raphaeljs.com/polar-clock.html',
duration = 5, // duration of the video, in seconds
framerate = 24, // number of frames per second. 24 is a good value.
counter = 0,
width = 1024,
height = 786;
frame = 10001;
page.viewportSize = { width: width, height: height };
page.open(address, function(status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit(1);
} else {
window.setTimeout(function () {
page.clipRect = { top: 0, left: 0, width: width, height: height };
window.setInterval(function () {
counter++;
page.render('newtest/image'+(frame++)+'.png', { format: 'png' });
if (counter > duration * framerate) {
phantom.exit();
}
}, 1/framerate);
}, 200);
}
});
这将创建120个图像,这是正确的计数,但是当您逐个看到图像时,您会看到许多重复相同的内容和许多丢失的图像
ffmpeg:
fmpeg -start_number 10001 -i newtest/image%05d.png -c:v libx264 -r 24 -pix_fmt yuv420p out.mp4
我知道这个脚本和ffmpeg命令并不完美,因为我没有幸运地做了一百次更改,而且我失去了正确的设置理解。
有人引导我解决这个问题吗?。
谢谢大家