我在 Windows 10 上使用 OBS 来记录 Web 浏览器的窗口。我记录在线课程会话以供以后使用,很多时候我必须切换窗口或桌面,并且当 Web 浏览器窗口不在焦点上时,在 Firefox 上 10 秒后,在基于 Chromium 的浏览器上,Web 浏览器屏幕立即冻结(Firefox)或变黑(Chromium),以节省资源渲染等。我尝试了很多方法来阻止这种情况发生:
- 更改 Windows 样式,如透明度和始终位于顶部。请参阅:窗口样式和扩展窗口样式
- 安装浏览器扩展程序来更改文档对象,如下所示:
document.visibilityState = 'visible'; document.hidden = false
欺骗标签,使其认为它仍然可见。请参阅:始终可见和始终处于活动状态的窗口 - 尝试不同的录音程序。
- 尝试不同的主流网络浏览器(Chrome、Firefox、Edge、Opera、Brave)。
- 切换硬件加速。
- 在设置或 about:config 或 chrome:flags 及相关扩展中切换内存节省选项。请参阅:大吊带
我认为 Chrome 最先采用了这种行为,所以我停止使用它,转而使用 Firefox,然后 Firefox 也采用了这种行为,我又转而使用 Edge 浏览器,但新更新的 Edge 浏览器(基于 Chromium)也这样做。我也尝试了 Opera 和 Brave。
另一个想法是在 OBS 中记录课程(浏览器源功能),但在大多数在线课程中,我的存在仅限于一个选项卡/浏览器,因此我无法使用 OBS 的浏览器打开浏览器选项卡来记录课程。我需要在浏览器上活跃,响应课程等。我希望能够记录它的屏幕并在桌面和窗口之间自由移动。所以正如你所看到的,我无法在虚拟机内记录浏览器,因为我可能必须将我的主机的桌面共享给班级。在虚拟机内安装我的程序(如 VS Code 等)并在它们之间同步文件会太麻烦。
OBS 论坛上已经讨论过类似的问题:窗口未聚焦时窗口捕获问题
答案1
答案2
火狐浏览器:
导航关于:配置并搜索browser.tabs.unloadOnLowMemory. 将其设置为 false。
铬合金:
打开设置并使用搜索栏查找“内存保护程序”(在某些 chrome 克隆版本中可能是“标签睡眠”等)。关闭该功能。
至于微软Edge,您应该寻找“打开效率模式”和“使用睡眠标签节省资源”(将其关闭)。
PS:另外请确保您没有安装任何用于卸载非活动选项卡的第三方扩展。
答案3
对于 Firefox,我怀疑那禁用该widget.pause-compositor-when-minimized
设置可能会修复此问题。(这不是“内存保护”的问题,而是“省电”的问题——当窗口不可见时,程序停止渲染是很常见的,尤其是现在网络浏览器像游戏一样使用 GPU 渲染;而 Firefox 可能无法知道它的窗口正在被记录。)