我一直在尝试使用phantomjs或slimerjs从网站捕获一系列png,然后将输出发送到/ dev / stdout并将其传输到ffmpeg以制作视频。
像这样:
phantomjs test.js | ./ffmpeg -analyzeduration 2147483647 -probesize 2147483647 -y -c:v png -f image2pipe -r 10 -i - -c:v libx264 -pix_fmt yuv420p -movflags +faststart test.mp4
test.js:
var page = require('webpage').create();
page.clipRect = { top: 0, left: 0, width: 900, height: 800};
page.viewportSize = { width: 900, height: 800};
var url = 'http://dl.dropbox.com/u/621993/voronoi/voronoi.html';
var frames = 50;
page.open(url, function(){
setInterval(function(){
page.render('/dev/stdout');
if( frames == 0 ) {
phantom.exit();
}
frames--;
}, 100);
});
但是我没有在stdout上得到任何东西,在最新的ubuntu和debian wheezy尝试使用ports中的node.js和从git编译的node.js。
与npm install -g phantomjs
我猜这是一个错误,尝试查看他们的github问题跟踪器,但有1000多个未解决的问题,我想在打开票证之前检查一下,如果我实际做的正确。
谢谢。
答案 0 :(得分:0)
似乎phantomjs
在页面上获取复杂的html / js有一些麻烦(顺便说一句非常漂亮),如果你尝试其他URL为ex。 http://www.goodboydigital.com/pixijs/examples/12-2/和稍微不同的命令和最近的ffmpeg
它只是起作用;)
phantomjs test.js | ffmpeg-2.4.2-64bit-static/ffmpeg -y -c:v png -f image2pipe -r 25 -t 10 -i - -c:v libx264 -pix_fmt yuv420p -movflags +faststart test.mp4