1

I'm attempting to capture the terminal on my Ubuntu 16.04 LTS computer with OBS 21.0.1, however when I select the terminal window using the "Window Capture (XComposite)" method, I just get a black screen. I can capture any other window fine with this method, and it seems to be a problem only with the terminal.

Any suggestions for fixing this, or will I have to move to another terminal emulator such as the PuTTY terminal emulator?

1

A Solution

Avoid using terminal emulators with alpha channels (i.e. transparency support) such as those included in your distro. (In my case, it's the KDE Konsole.)

Instead, use a terminal without transparency support, such as XTerm or UXTerm, which should be included as part of any clean distro installation.

It may not look as nice at first or have the same feature set, but I can confirm that OBS is able to capture the source and display it correctly. (I confirmed this last night during a 4.5hr stream.)

To make it look nicer, you can press and hold Ctrl + R-Click to get the terminal's context menu and change font size, set it to use TrueType fonts, and so on. This definitely helps and is strongly recommended.

Problem Description

I ran into this issue yesterday and, after more searching, found out that this is a known bug in OBS, which was reported here back in Oct 31st, 2014 and last updated (to a closed status) on Nov. 26, 2016.

The issue is that OBS is not able to capture from a source that has an alpha channel. If you launch OBS from the terminal, you'll see the output below when you try to add a new Window Capture (XComposite) source to capture from a terminal. On my system a few minutes ago, the relevant output was:

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
...

The terminal has an alpha channel, which is used for transparency, and this is what makes OBS flip out whenever you try to capture from that source.

As you can see from my terminal below (KDE Konsole: Settings → Edit Current Profile... → Appearance (tab) → Edit...), you can set the alpha channel (transparency) value to 0%, but you cannot really remove the channel to get a terminal without the alpha channel itself.

By the looks of it, it seems they have no way (or intention) to fix this bug, which is unfortunate either way.

Alpha Channel

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.