我正在尝试使用NodeJs录制网页。我正在使用PhantomJs来拍摄页面的屏幕截图,并使用ffmpeg将它们转换为视频。问题是,我使用的页面使用3d transform css,而PhantomJs不支持3d transforms (http://phantomjs.org/supported-web-standards.html),所有内容似乎都是静态的。有没有支持3d转换的PhantomJs的替代品?或者是一种不同的方法?
NodeJs不是必须的,像Python这样的其他语言也可以工作。
下面是我现在使用的代码:
var page = require("webpage").create();
page.viewportSize = { width: 500, height: 860 };
page.open("pageurl", function() {
// Initial frame
var frame = 0;
// Add an interval every 25th second
setInterval(function() {
// Render an image with the frame name
page.render("frames/dragon" + frame++ + ".png", { format: "png" });
// Exit after 50 images
if (frame > 100) {
phantom.exit();
}
}, 25);
});
发布于 2019-04-29 21:08:23
Phantom JS不再需要维护,所以我建议使用像puppeteer这样的东西,它使用无头chrome,让你能够做你想做的事情。
发布于 2019-04-29 21:07:14
OBS通过Chromium Embedded Framework来支持这一点。这里有一个API for OBS,或者你可以直接使用CEF。
我使用的另一种方法是Tab Capture API,作为浏览器扩展。
发布于 2019-04-29 21:14:27
你有没有试过使用puppeteer。它使用的是chrome和它的超快
他们的自述文件中有一个简单的示例代码
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'example.png'});
await browser.close();
})();
在此处运行以下代码:https://try-puppeteer.appspot.com/
还可以在docs https://github.com/GoogleChrome/puppeteer/blob/v1.15.0/docs/api.md#pagescreenshotoptions中找到有关screenshot
命令的更多信息
祝好运!
https://stackoverflow.com/questions/55910775
复制