Есть ли альтернатива PhantomJs с поддержкой css 3d - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь записать веб-страницу, используя NodeJs.Я использую PhantomJs, чтобы делать скриншоты страницы, и ffmpeg, чтобы конвертировать их в видео.Проблема в том, что на странице, которую я использую, используется 3d-преобразование css, а PhantomJs не поддерживает 3d-преобразования (http://phantomjs.org/supported-web-standards.html), и все кажется статичным. Есть ли альтернатива PhantomJ, поддерживающая 3d-преобразования? Или, возможно, другой подход?

Нет необходимости быть NodeJ, другие языки, такие как 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);
});

Ответы [ 3 ]

0 голосов
/ 30 апреля 2019

Phantom JS больше не поддерживается, поэтому я бы предложил использовать что-то вроде puppeteer , которое использует хром без головы и дает вам возможность делать то, что вы запрашиваете.

0 голосов
/ 30 апреля 2019

Вы пробовали использовать кукловод . Он использует хром и его супер быстрый

У них есть простой пример кода в файле readme

(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 /

Более подробную информацию о команде screenshot также можно найти в документации https://github.com/GoogleChrome/puppeteer/blob/v1.15.0/docs/api.md#pagescreenshotoptions

.

Удачи!

0 голосов
/ 30 апреля 2019

OBS поддерживает это посредством Chromium Embedded Framework .Существует API для OBS , или вы можете использовать CEF напрямую.

Альтернативный метод, который я использую, - API Capture Capture в виде расширения браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...