「录出来是黑屏」是网页录屏最高频的求助,但它不是一个故障。同样一片黑,背后至少有四类完全不同的原因,各自的解法互不相通——把它们分开是排查的第一步:
| 层 | 症状特征 | 解法方向 |
|---|---|---|
| 安全上下文 | 页面直接说不能用,连按钮都没有 | 换成 HTTPS 或 localhost |
| 操作系统权限 | 浏览器自己录得到,别的窗口全黑 | 系统设置里授权 + 重启浏览器 |
| DRM 保护 | 界面正常,只有视频那一块黑 | 无解,属于设计如此 |
| 硬件叠加层 | 游戏或播放器区域黑或定格 | 换共享范围 / 关硬件加速 |
第一层:不是 HTTPS,接口根本不存在
屏幕采集是敏感权限,浏览器只在安全上下文里提供。非 HTTPS 访问时 Chrome 的处理很激进:把 navigator.mediaDevices 整个设为 undefined。
这带来一个容易误判的现象——接口不是调用失败,而是压根不存在,从代码里看和「浏览器太老不支持」一模一样。但两者的解法相反:一个要换地址,一个要换浏览器。所以工具用 isSecureContext 单独判断了这一种,两种情况给的提示语是分开的。
哪些算安全上下文:
- 任何
https://页面 —— ✅ http://localhost、http://127.0.0.1—— ✅ 例外算安全,本地开发不用配证书http://192.168.x.x这类局域网 IP —— ❌ 不算
最后一条是自建服务时的高频踩坑点:在自己电脑上开发一切正常,换成手机或同事电脑通过局域网 IP 访问就整个功能消失。这条限制和录屏工具无关,是浏览器对所有敏感权限的统一策略——跨设备摄像头串流也撞同一堵墙,那边的完整排查见跨设备摄像头串流连不上的 7 类原因。
第二层:macOS 的系统级权限(Mac 用户必看)
macOS 从 Catalina 起把「读取屏幕内容」列为受保护能力,App 必须在系统设置里被单独授权。没授权时的表现很有辨识度:浏览器自己的窗口录得到,别的窗口和桌面是黑的。
授权路径:系统设置 → 隐私与安全性 → 屏幕录制与系统录音,勾上你正在用的浏览器。
两个容易漏的细节:
- 每个浏览器算一个独立 App。装了 Chrome、Edge、Safari 就要分别勾,在 Chrome 里授权过不影响 Edge
- 改完必须完全退出浏览器再重开,用 Cmd+Q,不是关窗口。macOS 只在 App 启动时读一次这个权限
还要分清两层权限:浏览器里弹的「本站请求共享屏幕」是网站权限,系统设置里那个是应用权限。前者点了允许、后者没给,照样黑屏。
Windows 没有这一层,所以 Windows 用户的黑屏基本可以跳到第三、第四层。
第三层:DRM —— 界面正常,只有视频那块黑
受版权保护的视频在一条受保护的合成通道里解码显示,操作系统和浏览器会把这块画面从任何屏幕采集里排除。采集端拿到的是黑色像素——不是没读到,而是系统按规则给了黑色。
判断依据很清楚:播放器界面、菜单、进度条都录得到,唯独视频画面是黑的。如果是整屏全黑,那更可能是第二层的权限问题。
这条界限不该绕,本站也不提供任何绕过方法。有正当需求时的替代路径:
- 需要课程内容做笔记 → 用平台自带的下载和笔记功能
- 需要视频素材 → 找授权素材库或联系版权方
- 只是想录自己的演示 → 换成不受保护的内容源,一切正常
第四层:硬件叠加层 —— 游戏和播放器的黑
为了省电和降延迟,视频播放和游戏常把画面直接送到显卡的独立叠加平面(overlay),不经过桌面合成器。屏幕采集读的是合成结果,于是那块区域是黑色或者定格在某一帧。
四个解法,按代价从小到大:
- 共享范围从「整个屏幕」改成「应用窗口」——走的合成路径不同,很多情况直接就好了,代价为零,值得先试
- 游戏从独占全屏改成无边框窗口——这是录游戏的标准做法,顺带避免切窗口时闪黑
- 关掉硬件加速——播放器自己的设置,或 Chrome 的设置 → 系统 → 使用硬件加速。代价是 CPU 占用上升,长时间录制要留意发热
- 换成系统自带录屏或专业录制软件——它们能挂到更底层的采集接口,网页方案在这里确实有天花板
多显卡笔记本还有一个额外坑:浏览器跑在集显、游戏跑在独显时也会黑屏。在系统的显卡设置里把两者指到同一块卡。
相邻问题:画面发灰、窗口最小化后定格
HDR 导致的发灰不属于黑屏家族,但常一起出现。屏幕开了 HDR 时系统在更宽的动态范围里合成,录制管道输出的是普通 SDR 视频,映射不对就整体发灰、高光泛白、暗部糊掉。录制期间在系统显示设置里关掉 HDR 是最干脆的解法;已经录坏的素材事后调色只能救回一部分,重录更划算。
选了「应用窗口」后把窗口最小化,画面会定住。这是窗口共享的固有行为——窗口没在渲染,就没有新画面可采。演示时需要切到别的软件的话,应该选「整个屏幕」,或者用 Chrome 的**「切换共享」**按钮换源(工具已经开启了这个能力,录制途中可以换,不必停下重来)。
多显示器缩放比例不一致时,跨屏拖动的窗口在录像里会忽大忽小或者边缘发虚。录之前把目标窗口整个放到同一块屏幕上。
六种错误提示各自对应什么
浏览器抛出的异常名工具都翻成了中文,对照着看能直接定位:
| 提示 | 真实含义 | 怎么办 |
|---|---|---|
| 当前地址无法调用屏幕录制 | 不是安全上下文 | 换 HTTPS 或 localhost |
| 当前浏览器不支持网页录屏 | 接口确实不存在 | 换 Chrome / Edge |
| 没有可共享的屏幕或窗口 | 选择器里没选中任何源 | 重新点开始,选一个源 |
| 屏幕内容被系统或其它程序占用 | 采集通道被别的程序抓着 | 退掉会议共享 / OBS,重开浏览器 |
| 当前屏幕不支持所选分辨率/帧率 | 约束条件超出设备能力 | 改选「原始画质」 |
| 页面不在前台,无法开始录制 | 工具标签页被切走了 | 切回前台再点开始 |
其中「被占用」最值得多说一句:常见来源是会议软件正在共享屏幕、另一个录屏或推流软件在运行、远程桌面会话,以及部分企业管控软件主动拦截。受管控的公司电脑可能由策略直接禁止屏幕采集,这种情况本机怎么调都没用,得找 IT。
用户在系统选择器里点「取消」不算错误,工具会静默返回,不弹任何提示——这是刻意的,误触取消再看到一个报错框很讨厌。
排查顺序
- 地址栏是 HTTPS 或 localhost 吗?
- Mac 上给过系统级屏幕录制权限、并且 Cmd+Q 重启过浏览器吗?
- 是整屏黑,还是只有视频那一块黑?(后者是 DRM,到此为止)
- 共享范围换成「应用窗口」试一次
- 游戏改无边框窗口,播放器关硬件加速
- 屏幕的 HDR 关了吗?
排掉之后就可以正常开录了:屏幕录制全程在浏览器内编码,画面不上传。录长会议、网课要注意内存问题,见录一小时怎么不崩;录完发现进度条读不出总时长是浏览器的已知缺陷,机制和修法见WebM 时长元数据;声音那一路的排查是另一套逻辑,见录屏没声音的完整排查。