使用 OBS 捕获 Ubuntu 上的终端

使用 OBS 捕获 Ubuntu 上的终端

我正在尝试使用 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 通道本身。

从外观上看,他们似乎没有办法(或意图)修复这个错误,无论如何这都是不幸的。

Alpha 通道

相关内容