我正在尝试使用 OBS 21.0.1 捕获我 Ubuntu 16.04 LTS 计算机上的终端,但是当我使用“窗口捕获(XComposite)”方法选择终端窗口时,我只会看到黑屏。我可以使用此方法捕获任何其他窗口,这似乎只是终端的问题。
有什么建议可以解决这个问题,或者我是否必须转到另一个终端仿真器,例如 PuTTY 终端仿真器?
答案1
一个办法
避免使用带有 alpha 通道(即透明度支持)的终端仿真器,例如发行版中包含的终端仿真器。(就我而言,它是 KDE Konsole。)
相反,使用终端没有透明度支持,例如终端或者UXTerm,它应该作为任何干净发行版安装的一部分包含在内。
乍一看可能不太好看,功能可能也不一样,但我可以确认 OBS是能够捕获源并正确显示。(我昨晚在 4.5 小时的直播中证实了这一点。)
为了让它看起来更美观,您可以按住Ctrl+R-Click来获取终端的上下文菜单并更改字体大小,将其设置为使用 TrueType 字体等。这确实有帮助,强烈推荐。
问题描述
我昨天遇到了这个问题,经过进一步搜索,发现这是一个已知的 OBS 错误,已报告这里最早于 2014 年 10 月 31 日发布,最后更新(关闭状态)于 2016 年 11 月 26 日。
问题是 OBS 无法从具有 alpha 通道的源进行捕获。如果您从终端启动 OBS,则在尝试添加新窗口捕获 (XComposite)源从终端捕获。几分钟前,在我的系统上,相关输出为:
info: User added source 'Terminal' (xcomposite_input) to scene 'Code - Mono'
info: xcompcap: [window-capture: 'Terminal'] update settings:
title: Desktop — Plasma
class: plasmashell
error: glCopyImageSubData failed, glGetError returned 0x502
error: device_copy_texture (GL) failed
error: glCopyImageSubData failed, glGetError returned 0x502
error: device_copy_texture (GL) failed
error: glCopyImageSubData failed, glGetError returned 0x502
error: device_copy_texture (GL) failed
error: glCopyImageSubData failed, glGetError returned 0x502
...
该终端有一个 alpha 通道,用于透明度,这就是当您尝试从该源捕获时 OBS 会翻转的原因。
正如你从下面的终端(KDE Konsole)所看到的:设置 → 编辑当前配置文件... → 外观(选项卡)→ 编辑...),你可以将 alpha 通道(透明度)值设置为 0%,但你无法真正删除该通道来获取终端没有alpha 通道本身。
从外观上看,他们似乎没有办法(或意图)修复这个错误,无论如何这都是不幸的。