phantomjs截图和ffmpeg框架丢失

时间:2015-10-20 04:50:37

标签: ffmpeg phantomjs capture

我在从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命令并不完美,因为我没有幸运地做了一百次更改,而且我失去了正确的设置理解。

有人引导我解决这个问题吗?。

谢谢大家

0 个答案:

没有答案