【问题标题】:Is there a PhantomJs alternative with css 3d support是否有支持 css 3d 的 PhantomJs 替代方案
【发布时间】:2019-09-18 12:22:40
【问题描述】:

我正在尝试使用 NodeJs 录制网页。我正在使用 PhantomJs 截取页面并使用 ffmpeg 将它们转换为视频。问题是我正在使用的页面使用 3d 变换 css,而 PhantomJs 不支持 3d 变换 (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);
});

【问题讨论】:

    标签: javascript html node.js phantomjs record


    【解决方案1】:

    您是否尝试过使用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/

    还可以在文档https://github.com/GoogleChrome/puppeteer/blob/v1.15.0/docs/api.md#pagescreenshotoptions 中找到有关screenshot 命令的更多信息

    祝你好运!

    【讨论】:

    • 谢谢。 puppeteer 的问题是输出屏幕截图(jpeg)大约需要 100ms,这意味着视频将是 10fps ..
    【解决方案2】:

    Phantom JS 不再被维护,所以我建议使用类似 puppeteer 的东西,它使用无头 chrome 并让您能够执行您的请求。

    【讨论】:

    【解决方案3】:

    OBS 通过Chromium Embedded Framework 支持这一点。有API for OBS,也可以直接用CEF。

    我使用的另一种方法是Tab Capture API,通过浏览器扩展。

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2012-09-27
      • 2014-05-30
      相关资源
      最近更新 更多