使用 OBS 在 Ubuntu 上捕获终端

car*_*ow1 3 command-line obs-studio desktop-recording

我正在尝试使用 OBS 21.0.1 在我的 Ubuntu 16.04 LTS 计算机上捕获终端,但是当我使用“Window Capture (XComposite)”方法选择终端窗口时,我只是得到一个黑屏。我可以用这种方法很好地捕获任何其他窗口,这似乎只是终端的问题。

有什么解决这个问题的建议,还是我必须转移到另一个终端仿真器,比如 PuTTY 终端仿真器?

cod*_*edd 5

一个办法

避免使用带有 alpha 通道(即透明度支持)的终端仿真器,例如发行版中包含的那些。(就我而言,它是 KDE Konsole。)

相反,使用支持透明度的终端,例如XTermUXTerm,它们应该作为任何干净的发行版安装的一部分包含在内。

它可能不会那么好,在第一或具有相同的功能集,但我可以证实,OBS能够捕捉源并正确显示。(我昨晚在 4.5 小时的直播中证实了这一点。)

为了让它看起来更好看,您可以按住Ctrl+R-Click以获取终端的上下文菜单并更改字体大小,将其设置为使用 TrueType 字体,等等。这绝对有帮助,强烈推荐。

问题描述

我昨天遇到了这个问题,经过更多的搜索,发现这是 OBS 中的一个已知错误,该错误于2014 年 10 月 31 日在此处报告,并于 2016 年 11 月 26 日最后更新(至关闭状态)。

问题是 OBS 无法从具有 Alpha 通道的源中捕获。如果您从终端启动 OBS,当您尝试添加新的Window Capture (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
...
Run Code Online (Sandbox Code Playgroud)

终端有一个 alpha 通道,用于透明度,这就是当您尝试从该源捕获时 OBS 翻转的原因。

正如您从我下面的终端中看到的(KDE Konsole:设置?编辑当前配置文件...?外观(选项卡)?编辑...),您可以将 alpha 通道(透明度)值设置为 0%,但您不能真的删除通道以获得没有alpha 通道本身的终端。

从表面上看,他们似乎没有办法(或意图)修复这个错误,无论哪种方式都是不幸的。

阿尔法通道