首页 > 解决方案 > 节点木偶流不录制音频

问题描述

我正在尝试使用 puppeteer 流录制视频和音频,但它只将视频写入输出文件:

async function videoRecorder() {
  require("puppeteer-stream");
  const puppeteer = require("puppeteer");
  const fs = require("fs");

  const filename = `./recordings/test.mp4`;

  const file = fs.createWriteStream(filename);

  const browser = await puppeteer.launch({
    executablePath:
      "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
    headless: true,
    defaultViewport: null,
    devtools: false,
    args: [
      "--window-size=1920,1080",
      "--window-position=1921,0",
      "--autoplay-policy=no-user-gesture-required",
    ],
    ignoreDefaultArgs: ["--mute-audio"],
  });

  const page = await browser.newPage();

  await page.goto(pathToPageWithVideo, {
    waitUntil: "load",
  });

  const stream = await page.getStream({
    audio: true,
    video: true,
  });

  stream.pipe(file);

  setTimeout(async () => {
    await stream.destroy();
    file.close();
    console.log("finished");
  }, 10000);
}

我尝试了许多其他录制视频和音频的方法,但这是我更接近的一种,因为我的主要目的是只获取音频,我愿意接受更多建议。

谢谢

标签: node.jspuppeteer

解决方案


通过另存为 .webm 而不是 .mp4 解决。

参考:https ://github.com/Flam3rboy/puppeteer-stream/issues/1


推荐阅读