当浏览器窗口未处于焦点时如何录制它

当浏览器窗口未处于焦点时如何录制它

我在 Windows 10 上使用 OBS 来记录 Web 浏览器的窗口。我记录在线课程会话以供以后使用,很多时候我必须切换窗口或桌面,并且当 Web 浏览器窗口不在焦点上时,在 Firefox 上 10 秒后,在基于 Chromium 的浏览器上,Web 浏览器屏幕立即冻结(Firefox)或变黑(Chromium),以节省资源渲染等。我尝试了很多方法来阻止这种情况发生:

  1. 更改 Windows 样式,如透明度和始终位于顶部。请参阅:窗口样式扩展窗口样式
  2. 安装浏览器扩展程序来更改文档对象,如下所示:document.visibilityState = 'visible'; document.hidden = false欺骗标签,使其认为它仍然可见。请参阅:始终可见始终处于活动状态的窗口
  3. 尝试不同的录音程序。
  4. 尝试不同的主流网络浏览器(Chrome、Firefox、Edge、Opera、Brave)。
  5. 切换硬件加速。
  6. 在设置或 about:config 或 chrome:flags 及相关扩展中切换内存节省选项。请参阅:大吊带

我认为 Chrome 最先采用了这种行为,所以我停止使用它,转而使用 Firefox,然后 Firefox 也采用了这种行为,我又转而使用 Edge 浏览器,但新更新的 Edge 浏览器(基于 Chromium)也这样做。我也尝试了 Opera 和 Brave。

另一个想法是在 OBS 中记录课程(浏览器源功能),但在大多数在线课程中,我的存在仅限于一个选项卡/浏览器,因此我无法使用 OBS 的浏览器打开浏览器选项卡来记录课程。我需要在浏览器上活跃,响应课程等。我希望能够记录它的屏幕并在桌面和窗口之间自由移动。所以正如你所看到的,我无法在虚拟机内记录浏览器,因为我可能必须将我的主机的桌面共享给班级。在虚拟机内安装我的程序(如 VS Code 等)并在它们之间同步文件会太麻烦。

OBS 论坛上已经讨论过类似的问题:窗口未聚焦时窗口捕获问题

答案1

Chrome 中有这个标志:chrome://flags/#calculate-native-win-occlusion,如果窗口不在前台,它会卸载活动选项卡。您可以尝试禁用它。然后重新启动浏览器,否则它将不起作用。

我使用最新的 Chrome 作为最新的 OBS 中的窗口捕获进行了测试,并且:

  • 在禁用它之前,它会在最小化网页时冻结网页,例如在网页上播放视频,而不会出现您所报告的黑屏
  • 禁用后,它不再冻结

此应用程序还可以适用于没有此类功能/标志的其他浏览器或窗口:窗顶,尝试将窗口置于顶部,包括在收缩/透明模式下。有一个问题谈论欺骗浏览器的解决方法,但不确定它的效果如何以及适用于哪些浏览器。

答案2

火狐浏览器:

导航关于:配置并搜索browser.tabs.unloadOnLowMemory. 将其设置为 false。

铬合金:

打开设置并使用搜索栏查找“内存保护程序”(在某些 chrome 克隆版本中可能是“标签睡眠”等)。关闭该功能。
至于微软Edge,您应该寻找“打开效率模式”和“使用睡眠标签节省资源”(将其关闭)。

PS:另外请确保您没有安装任何用于卸载非活动选项卡的第三方扩展。

答案3

对于 Firefox,我怀疑禁用widget.pause-compositor-when-minimized设置可能会修复此问题。(这不是“内存保护”的问题,而是“省电”的问题——当窗口不可见时,程序停止渲染是很常见的,尤其是现在网络浏览器像游戏一样使用 GPU 渲染;而 Firefox 可能无法知道它的窗口正在被记录。)

相关内容