录屏出来是默片,第一反应通常是「工具不行」。但网页录屏里的声音不是一个开关,而是两条互不相干的通路:一条是系统声音(画面里的视频、音乐、会议对方的说话声),由浏览器的屏幕共享接口提供;另一条是麦克风(你自己的讲解),走的是普通的媒体设备接口。两条路的支持度、授权方式、失败原因完全不同,混在一起排查就永远排不清。
先把结论摆前面:系统声音这条路能不能通,取决于「浏览器 × 共享范围 × 操作系统」三者的组合;麦克风那条路则几乎只和授权有关。
第一层:浏览器决定系统声音有没有可能
| 浏览器 | 系统声音 | 麦克风 | 行为 |
|---|---|---|---|
| Chrome / Edge | 支持 | 支持 | 共享面板里提供音频勾选项 |
| Firefox | 不支持 | 支持 | 请求音频被静默忽略,只返回视频轨 |
| Safari | 不支持 | 支持 | 请求音频直接抛异常 |
三种表现里最讨厌的是 Firefox:它不报错,只是安静地少给你一条音轨,很容易让人以为勾了就录上了。Safari 反而干脆,直接失败——本工具捕获到这类异常后会去掉音频再试一次,把录制救回来,同时在录制条上写明「当前浏览器不支持采集系统声音,已改为仅录画面」。
所以第一步不是研究设置,而是看你用的是什么浏览器。要录画面里的声音,换 Chrome 或 Edge。
第二层:共享范围决定音频从哪来
Chromium 的音频采集不是一个统一通道,而是按共享范围分成两种机制:
- 标签页音频——浏览器自己的音频管道,和操作系统无关,所以全平台可用
- 整机音频——需要操作系统提供回环通道,只有 Windows 有
这直接推出一条实用规则:
| 你的声音来自 | 推荐共享范围 | Mac 上可行 | Windows 上可行 |
|---|---|---|---|
| 网页视频、在线会议、网课 | Chrome 标签页 | ✅ | ✅ |
| 桌面软件(本地播放器、桌面版会议) | 整个屏幕 + 分享系统音频 | ❌ | ✅ |
| 只有你的旁白 | 任意 | ✅ | ✅ |
Mac 用户被坑得最多的就是这一格:选了「整个屏幕」,勾选项根本不出现,或者出现了也拿不到音轨——因为 macOS 没有公开的系统回环接口,这不是浏览器版本问题。工具此时会提示「浏览器未提供系统声音」。
Mac 上要录桌面软件的声音,只有两条路:装 BlackHole、Loopback 这类虚拟音频设备,把系统输出转成一个可被采集的输入设备,然后当成「麦克风」录进来;或者改用 macOS 自带的录屏。走虚拟声卡这条路有个副作用,下一节会讲。
第三层:面板里那个不起眼的勾选框
即使浏览器和范围都对,Chrome 共享面板左下角的**「同时分享标签页音频」/「分享系统音频」默认是不勾的**。这大概是所有「录屏没声音」里占比最高的单一原因——面板一闪而过,多数人只顾着点右下角的「分享」。
面板是浏览器的原生 UI,网页无法代你勾选,也读不到你勾没勾。工具只能在拿到流之后数一数音轨:请求了音频却一条都没拿到,就在录制条上挂出警告。开录后先看那一行提示,比录完二十分钟再发现划算得多。
麦克风那条路:只有三类故障
麦克风的失败原因收敛得多:
- 权限——被拒绝过一次后浏览器不再弹窗,只会静默失败。点地址栏左侧的图标检查本站权限;macOS 还有一层系统设置 → 隐私与安全性 → 麦克风,要确认浏览器本身被勾上
- 设备——默认输入指向了已断开的蓝牙耳机或残留的虚拟声卡,授权成功但没有有效音轨
- 占用——Windows 上部分驱动是独占模式,会议软件正在通话时会锁住麦克风
工具的处理原则是麦克风失败不中断录制:降级为无麦,继续录画面,并在录制条上写明「麦克风未授权或被占用,本次不含麦克风声音」。这个取舍是有意的——录到一半因为麦克风掉线而整段丢掉,比没有旁白严重得多。
为什么系统声音听起来干净、麦克风路的音乐发闷
浏览器的音频采集有三个默认开启的处理开关:回声消除、降噪、自动增益。它们是为通话人声调的,对音乐是有害的——降噪会把音乐里稳定的持续音当成噪声压掉,自动增益会把动态范围压平。
本工具因此对两路做了相反的设置:
| 音轨 | 回声消除 | 降噪 | 自动增益 | 理由 |
|---|---|---|---|---|
| 系统声音 | 关 | 关 | 关 | 录的是音乐和视频原声,任何处理都是损伤 |
| 麦克风 | 开 | 开 | 开 | 录的是讲解人声,这三项都是净收益 |
这解释了一个反直觉的现象:用虚拟声卡把系统输出接到「麦克风」端去录音乐,效果会明显不如直接录标签页音频——因为它走的是语音优化那条路。有得选的时候,永远优先标签页音频。
两路同开时的回声
两路都开启时,工具用 AudioContext 把它们混成一条音轨再送编码器,这样输出的视频只有一条音轨,任何播放器都能正常播。
混音节点只连编码器,刻意不连扬声器。这一步很关键:如果把采集到的系统声音再接回扬声器,就等于把声音放了第二遍,而这第二遍又会被采集进来,形成越来越响的正反馈。
但还有一份回声是工具消不掉的:你的麦克风会把扬声器放出来的系统声音再录一遍。麦克风路开启的回声消除能消掉一部分,音量大、房间反射强、用外接音箱时都会漏。录带旁白的演示时戴耳机,物理上断开这条通路,比任何算法都可靠。
顺带一提,如果混音因为某些环境原因失败了,工具会退化为只保留系统声音而不是整次录制失败——所以「录出来只有画面里的声音、没有我的旁白」偶尔也可能是这个原因,不只是麦克风授权问题。
一张排查顺序表
按这个顺序走,基本不会漏:
- 用的是 Chrome / Edge 吗?不是 → 换浏览器(只要旁白的可以不换)
- 声音在网页里吗?是 → 共享范围选「标签页」;不是且你在 Mac → 只能上虚拟声卡或系统录屏
- 共享面板里勾了音频吗?→ 重来一次,看清左下角
- 录制条上的提示写了什么?→ 有警告就按警告处理
- 播放源本身在出声吗?→ 标签页小喇叭、系统音量、输出设备三处都看一眼
- 有回声?→ 戴耳机
顺手要知道的两件事
工具在请求屏幕共享时排除了自己所在的页面,所以录「整个浏览器」时不会出现无限镜像套娃;同时允许了 Chrome 的**「切换共享」**按钮,录制途中可以换共享源而不必停下重来——演示需要跨软件时很有用。
录完的后续处理:文件太大可以接着用视频压缩降一档,参数怎么选见视频压缩三杠杆;只需要画面不要声音的,用视频提取音频反向操作也可以,机制见容器与编码的差异;要做成文档里的动图,直接转 GIF 制作,帧率和调色板的取舍见视频转 GIF 不糊不卡。
准备好参数就可以开始了:屏幕录制全程在本地编码,画面和声音都不上传。录之前顺手确认一下屏幕上没有密码、私信和客户资料——这一条比任何音频设置都重要。