You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下Puppeteer调用MediaRecorder API捕获屏幕报NotReadableError

Ubuntu下Puppeteer调用getDisplayMedia报NotReadableError的解决方法

问题描述

在Ubuntu Linux系统中使用Puppeteer结合MediaRecorder API捕获屏幕媒体时,调用navigator.mediaDevices.getDisplayMedia()抛出NotReadableError,但相同代码在Windows系统可正常运行并生成可播放视频片段。

核心代码片段:

const stream = await navigator.mediaDevices.getDisplayMedia({
  video: {
    displaySurface: "monitor",
    width: 1368,
    height: 768,
  },
  // audio: { deviceId: "default" },
});

const mediaRecorder = new MediaRecorder(stream);

mediaRecorder.ondataavailable = (event) => {
  // ... 处理视频片段逻辑 ...
};

Puppeteer非无头模式启动参数:

--use-fake-ui-for-media-stream,
--auto-select-desktop-capture-source=Entire screen,
--enable-features=AudioServiceOutOfProcess,
--no-sandbox,
--disable-setuid-sandbox,
--disable-features=IsolateOrigins,site-per-process

已尝试方案:

  • 启用--use-fake-ui-for-media-stream参数
  • 指定--auto-select-desktop-capture-source=Entire screen参数
  • 开启AudioServiceOutOfProcess特性
  • 禁用沙箱相关参数

解决方法

1. 匹配正确的显示源名称

Ubuntu下--auto-select-desktop-capture-source的参数值必须与系统实际显示源名称完全一致:

  • 打开Chrome输入chrome://webrtc-internals/,手动发起一次屏幕捕获,查看DesktopCaptureSources中的名称,将启动参数里的Entire screen替换为实际名称(比如部分环境下是Screen 0)
  • 确认当前用户拥有桌面捕获权限,手动启动Chrome尝试屏幕共享,验证权限是否正常

2. 补充Puppeteer启动参数

添加以下参数解除Linux下Chrome的媒体捕获限制:

--allow-file-access-from-files,
--disable-web-security,
--enable-usermedia-screen-capturing,
--disable-features=MediaSessionService

3. 安装系统依赖组件

Ubuntu下Chrome屏幕捕获依赖特定库,执行以下命令安装:

sudo apt install libxss1 libappindicator1 libindicator7

若使用Wayland桌面环境,切换到Xorg再测试:登录时点击用户名旁的齿轮图标,选择Ubuntu on Xorg,重启系统后重新运行代码。

4. 调整getDisplayMedia配置

简化视频分辨率配置,避免固定值导致的兼容性问题:

const stream = await navigator.mediaDevices.getDisplayMedia({
  video: {
    displaySurface: "monitor",
    width: { ideal: 1368 },
    height: { ideal: 768 },
  },
});

使用ideal参数让系统自动适配最优分辨率,而非强制固定值。

5. 脱离Puppeteer验证基础功能

直接在Chrome控制台执行核心捕获代码,若仍报错,说明问题出在系统或Chrome配置,而非Puppeteer本身,可优先排查系统权限、Chrome版本等问题。

内容的提问来源于stack exchange,提问作者Shubham More

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 16:32:46