Solved! Window Capture is always blank

AaronD

Active Member
OBS 28.1.2, installed via PPA
Ubuntu Studio 22.04.1 LTS
Screenshot_20221112_172150.png

Window Capture (Xcomposite) appears to try - it has a correct list of all the window titles - but it still doesn't actually show anything for any of them. See screenshot.
Window Capture (PipeWire) doesn't even have that. Its Properties window shows blank, and a Select button. Clicking that button does nothing.

Screen Capture (XSHM) works completely. But I want a window that is usually behind others.
Screen Capture (PipeWire) does the same as its Window counterpart. Properties is blank, and Select does nothing.

Logfile:

Terminal, with the command taken from a script that sets up a more complex rig than just this:
Code:
~$ obs --disable-updater --multi --studio-mode --profile "Meeting_Slave" --collection "Meeting_Slave" --scene "Meeting"
debug: Found portal inhibitor
Attempted path: share/obs/obs-studio/locale/en-US.ini
Attempted path: /usr/share/obs/obs-studio/locale/en-US.ini
Attempted path: share/obs/obs-studio/locale.ini
Attempted path: /usr/share/obs/obs-studio/locale.ini
Attempted path: share/obs/obs-studio/themes/Yami.qss
Attempted path: /usr/share/obs/obs-studio/themes/Yami.qss
info: Command Line Arguments: --disable-updater --multi --studio-mode --profile Meeting_Slave --collection Meeting_Slave --scene Meeting
info: Using EGL/X11
info: CPU Name: Intel(R) Core(TM) i7-4940MX CPU @ 3.10GHz
info: CPU Speed: 3200.000MHz
info: Physical Cores: 4, Logical Cores: 8
info: Physical Memory: 32043MB Total, 25741MB Free
info: Kernel Version: Linux 5.15.0-52-lowlatency
info: Distribution: "Ubuntu" "22.04"
info: Session Type: x11
info: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.21.1
info: Qt Version: 6.2.4 (runtime), 6.2.4 (compiled)
info: Portable mode: false
Attempted path: share/obs/obs-studio/themes/Dark/no_sources.svg
Attempted path: /usr/share/obs/obs-studio/themes/Dark/no_sources.svg
qt.core.qmetaobject.connectslotsbyname: QMetaObject::connectSlotsByName: No matching signal for on_tbar_position_valueChanged(int)
qt.core.qmetaobject.connectslotsbyname: QMetaObject::connectSlotsByName: No matching signal for on_actionShowTransitionProperties_triggered()
qt.core.qmetaobject.connectslotsbyname: QMetaObject::connectSlotsByName: No matching signal for on_actionHideTransitionProperties_triggered()
info: OBS 28.1.2 (linux)
info: ---------------------------------
info: ---------------------------------
info: audio settings reset:
        samples per sec: 48000
        speakers:        2
        max buffering:   960 milliseconds
        buffering type:  dynamically increasing
info: ---------------------------------
info: Initializing OpenGL...
info: Loading up OpenGL on adapter NVIDIA Corporation Quadro K5100M/PCIe/SSE2
info: OpenGL loaded successfully, version 3.3.0 NVIDIA 390.154, shading language 3.30 NVIDIA via Cg compiler
info: ---------------------------------
info: video settings reset:
        base resolution:   1920x1080
        output resolution: 1920x1080
        downscale filter:  Lanczos
        fps:               30/1
        format:            NV12
        YUV mode:          Rec. 709/Partial
info: NV12 texture support not available
info: P010 texture support not available
info: Audio monitoring device:
        name: Monitor of JACK sink (pulse1-out)
        id: jack_out.2.monitor
info: ---------------------------------
info: [adv-ss] version: 9bcced5
info: [adv-ss] version: 9bcced524bc456f3095b977f3af5966dfe14703e
info: [adv-ss] curl loaded successfully
info: [adv-ss] found curl library
info: [adv-ss] attempting to load "/usr/lib/x86_64-linux-gnu/obs-plugins/adv-ss-plugins/advanced-scene-switcher-opencv.so"
info: [adv-ss] successfully loaded "/usr/lib/x86_64-linux-gnu/obs-plugins/adv-ss-plugins/advanced-scene-switcher-opencv.so"
QCssParser::parseColorValue: Specified color without alpha value but alpha given: 'rgb 0,0,0,0'
QCssParser::parseColorValue: Specified color without alpha value but alpha given: 'rgb 0,0,0,0'
QCssParser::parseColorValue: Specified color without alpha value but alpha given: 'rgb 0,0,0,0'
warning: No AJA devices found, skipping loading AJA UI plugin
warning: Failed to initialize module 'aja-output-ui.so'
warning: No AJA devices found, skipping loading AJA plugin
warning: Failed to initialize module 'aja.so'
warning: Failed to load 'en-US' text for module: 'decklink-captions.so'
warning: Failed to load 'en-US' text for module: 'decklink-output-ui.so'
libDeckLinkAPI.so: cannot open shared object file: No such file or directory
warning: A DeckLink iterator could not be created.  The DeckLink drivers may not be installed
warning: Failed to initialize module 'decklink.so'
info: [pipewire] Available captures:
info: [pipewire]     - Desktop capture
info: [pipewire]     - Window capture
info: [obs-browser]: Version 2.18.7
info: [obs-browser]: CEF Version 103.0.5060.134 (runtime), 103.0.0-5060-shared-textures_143.2591+g4204d54+chromium-103.0.5060.134 (compiled)
info: NVENC supported
info: FFMPEG VAAPI supported
info: [obs-websocket] [obs_module_load] you can haz websockets (Version: 5.0.1 | RPC Version: 1)
info: [obs-websocket] [obs_module_load] Qt version (compile-time): 6.2.4 | Qt version (run-time): 6.2.4
info: [obs-websocket] [obs_module_load] Linked ASIO Version: 101201
info: [obs-websocket] [obs_module_load] Module loaded.
info: [vlc-video]: VLC 3.0.16 Vetinari found, VLC video source enabled
info: ---------------------------------
info:   Loaded Modules:
info:     vlc-video.so
info:     text-freetype2.so
info:     rtmp-services.so
info:     obs-x264.so
info:     obs-websocket.so
info:     obs-vst.so
info:     obs-transitions.so
info:     obs-outputs.so
info:     obs-libfdk.so
info:     obs-filters.so
info:     obs-ffmpeg.so
info:     obs-browser.so
info:     linux-v4l2.so
info:     linux-pulseaudio.so
info:     linux-pipewire.so
info:     linux-jack.so
info:     linux-capture.so
info:     linux-alsa.so
info:     image-source.so
info:     frontend-tools.so
info:     decklink-output-ui.so
info:     decklink-captions.so
info:     advanced-scene-switcher.so
info: ---------------------------------
QLayout: Attempting to add QLayout "" to OBSBasic "OBSBasic", which already has a layout
QWidget::setTabOrder: 'first' and 'second' must be in the same window
info: ==== Startup complete ===============================================
info: Switched to Preview/Program mode
info: ------------------------------------------------
info: All scene data cleared
info: ------------------------------------------------
info: v4l2-input: Start capture from /dev/video0
info: v4l2-input: Input: 0
info: v4l2-input: Resolution: 1280x720
info: v4l2-input: Pixelformat: YUYV
info: v4l2-input: Linesize: 2560 Bytes
info: v4l2-input: Framerate: 11.00 fps
info: v4l2-input: /dev/video0: select timeout set to 454545 (5x frame periods)
info: pulse-input: Server name: 'pulseaudio 15.99.1'
info: pulse-input: Audio format: float32le, 48000 Hz, 2 channels
info: pulse-input: Started recording from 'jack_in.2'
info: pulse-input: Server name: 'pulseaudio 15.99.1'
info: pulse-input: Audio format: float32le, 48000 Hz, 2 channels
info: pulse-input: Started recording from 'jack_in.4'
info: pulse-am: Server name: 'pulseaudio 15.99.1'
info: pulse-am: Audio format: float32le, 48000 Hz, 2 channels
info: pulse-am: Started Monitoring in 'jack_out.2.monitor'
info: [window-capture: 'WINDOW - Meeting'] update settings:
        title: unknown
        class: unknown

info: pulse-input: Server name: 'pulseaudio 15.99.1'
info: pulse-input: Audio format: float32le, 48000 Hz, 2 channels
info: pulse-input: Started recording from 'jack_in.3'
info: Switched to scene 'Meeting'
info: [adv-ss] trying to reconnect to  in 10 seconds.
info: ------------------------------------------------
info: Loaded scenes:
info: - scene 'Meeting':
info:     - source: 'WINDOW - Meeting' (xcomposite_input)
info:     - source: '3. Meeting Output' (pulse_input_capture)
info:         - monitoring: monitor and output
info:     - source: '1. Room Mic Mix' (pulse_input_capture)
info: [adv-ss] started
info: - scene 'Feature':
info:     - source: 'CAPTURE - OBS Master' (v4l2_input)
info:     - source: '2. OBS Master' (pulse_input_capture)
info: - scene 'Voiceover':
info:     - source: 'CAPTURE - OBS Master' (v4l2_input)
info:     - source: '3. Meeting Output' (pulse_input_capture)
info:         - monitoring: monitor and output
info:     - source: '1. Room Mic Mix' (pulse_input_capture)
info: ------------------------------------------------
info: [obs-websocket] [WebSocketServer::onObsLoaded] WebSocket server is enabled, starting...
info: [obs-websocket] [WebSocketServer::Start] Not locked to IPv4 bindings
info: [obs-websocket] [WebSocketServer::ServerRunner] IO thread started.
info: [obs-websocket] [WebSocketServer::Start] Server started successfully on port 4455. Possible connect address: 192.168.20.99
Attempted path: share/obs/obs-studio/images/overflow.png
Attempted path: /usr/share/obs/obs-studio/images/overflow.png
info: [adv-ss] detected busy loop - refusing to sleep less than 1ms
info: [adv-ss] detected busy loop - refusing to sleep less than 1ms
info: [window-capture: 'WINDOW - Meeting'] update settings:
        title: New Tab - Chromium
        class: chromium

error: No GL_OES_EGL_image
info: [adv-ss] detected busy loop - refusing to sleep less than 1ms
info: [adv-ss] detected busy loop - refusing to sleep less than 1ms
info: [adv-ss] detected busy loop - refusing to sleep less than 1ms
info: [adv-ss] detected busy loop - refusing to sleep less than 1ms
info: ==== Shutting down ==================================================
info: pulse-input: Stopped recording from 'jack_in.3'
info: pulse-input: Got 264364 packets with 6295552 frames
info: v4l2-input: /dev/video0: Stopped capture after 984 frames
info: pulse-input: Stopped recording from 'jack_in.4'
info: pulse-input: Got 264665 packets with 6302720 frames
info: pulse-am: Stopped Monitoring in 'jack_out.2.monitor'
info: pulse-am: Got 263153 packets with 6266712 frames
info: pulse-input: Stopped recording from 'jack_in.2'
info: pulse-input: Got 264665 packets with 6302720 frames
info: [adv-ss] detected busy loop - refusing to sleep less than 1ms
info: All scene data cleared
info: ------------------------------------------------
info: [adv-ss] stopped
info: [adv-ss] trying to reconnect to  in 10 seconds.
info: [adv-ss] trying to reconnect to  in 10 seconds.
info: [obs-websocket] [obs_module_unload] Shutting down...
info: [obs-websocket] [WebSocketServer::ServerRunner] IO thread exited.
info: [obs-websocket] [WebSocketServer::Stop] Server stopped successfully
info: [obs-websocket] [obs_module_unload] Finished shutting down.
info: [Scripting] Total detached callbacks: 0
info: Freeing OBS context data
warning: 1 views remain at shutdown
info: == Profiler Results =============================
info: run_program_init: 1581.26 ms
info:  ┣OBSApp::AppInit: 8.875 ms
info:  ┃ ┗OBSApp::InitLocale: 1.006 ms
info:  ┗OBSApp::OBSInit: 1537.48 ms
info:    ┣obs_startup: 16.277 ms
info:    ┗OBSBasic::OBSInit: 1357 ms
info:      ┣OBSBasic::InitBasicConfig: 0.096 ms
info:      ┣OBSBasic::ResetAudio: 0.135 ms
info:      ┣OBSBasic::ResetVideo: 118.681 ms
info:      ┣OBSBasic::InitOBSCallbacks: 0.003 ms
info:      ┣OBSBasic::InitHotkeys: 0.029 ms
info:      ┣obs_load_all_modules2: 505.025 ms
info:      ┃ ┣obs_init_module(advanced-scene-switcher.so): 31.077 ms
info:      ┃ ┣obs_init_module(aja-output-ui.so): 0.124 ms
info:      ┃ ┣obs_init_module(aja.so): 0.1 ms
info:      ┃ ┣obs_init_module(decklink-captions.so): 0 ms
info:      ┃ ┣obs_init_module(decklink-output-ui.so): 0 ms
info:      ┃ ┣obs_init_module(decklink.so): 0.146 ms
info:      ┃ ┣obs_init_module(frontend-tools.so): 110.501 ms
info:      ┃ ┣obs_init_module(image-source.so): 0.009 ms
info:      ┃ ┣obs_init_module(linux-alsa.so): 0.006 ms
info:      ┃ ┣obs_init_module(linux-capture.so): 0.56 ms
info:      ┃ ┣obs_init_module(linux-jack.so): 0.004 ms
info:      ┃ ┣obs_init_module(linux-pipewire.so): 1.549 ms
info:      ┃ ┣obs_init_module(linux-pulseaudio.so): 0.005 ms
info:      ┃ ┣obs_init_module(linux-v4l2.so): 0.06 ms
info:      ┃ ┣obs_init_module(obs-browser.so): 0.114 ms
info:      ┃ ┣obs_init_module(obs-ffmpeg.so): 1.031 ms
info:      ┃ ┃ ┗nvenc_check: 0.795 ms
info:      ┃ ┣obs_init_module(obs-filters.so): 0.035 ms
info:      ┃ ┣obs_init_module(obs-libfdk.so): 0.003 ms
info:      ┃ ┣obs_init_module(obs-outputs.so): 0.006 ms
info:      ┃ ┣obs_init_module(obs-transitions.so): 0.014 ms
info:      ┃ ┣obs_init_module(obs-vst.so): 0.006 ms
info:      ┃ ┣obs_init_module(obs-websocket.so): 15.952 ms
info:      ┃ ┣obs_init_module(obs-x264.so): 0.003 ms
info:      ┃ ┣obs_init_module(rtmp-services.so): 0.731 ms
info:      ┃ ┣obs_init_module(text-freetype2.so): 0.015 ms
info:      ┃ ┗obs_init_module(vlc-video.so): 1.184 ms
info:      ┣OBSBasic::ResetOutputs: 0.232 ms
info:      ┣OBSBasic::CreateHotkeys: 0.041 ms
info:      ┣OBSBasic::InitService: 1.405 ms
info:      ┣OBSBasic::InitPrimitives: 0.157 ms
info:      ┗OBSBasic::Load: 663.377 ms
info: obs_hotkey_thread(25 ms): min=0.073 ms, median=0.341 ms, max=231.517 ms, 99th percentile=27.574 ms, 98.7999% below 25 ms
info: audio_thread(Audio): min=0.009 ms, median=0.064 ms, max=0.255 ms, 99th percentile=0.093 ms
info: obs_graphics_thread(33.3333 ms): min=0.074 ms, median=1.396 ms, max=595.729 ms, 99th percentile=33.887 ms, 98.9806% below 33.333 ms
info:  ┣tick_sources: min=0 ms, median=0.14 ms, max=593.833 ms, 99th percentile=3.599 ms
info:  ┣output_frame: min=0.05 ms, median=0.101 ms, max=51.458 ms, 99th percentile=0.378 ms
info:  ┃ ┗gs_context(video->graphics): min=0.049 ms, median=0.1 ms, max=51.457 ms, 99th percentile=0.378 ms
info:  ┃   ┣render_video: min=0.028 ms, median=0.075 ms, max=0.698 ms, 99th percentile=0.163 ms
info:  ┃   ┃ ┗render_main_texture: min=0.021 ms, median=0.063 ms, max=0.678 ms, 99th percentile=0.137 ms
info:  ┃   ┗gs_flush: min=0.005 ms, median=0.006 ms, max=51.315 ms, 99th percentile=0.051 ms
info:  ┗render_displays: min=0.012 ms, median=1.044 ms, max=285.04 ms, 99th percentile=4.989 ms
info: =================================================
info: == Profiler Time Between Calls ==================
info: obs_hotkey_thread(25 ms): min=25.114 ms, median=25.437 ms, max=256.599 ms, 60.3109% within ±2% of 25 ms (0% lower, 39.6891% higher)
info: obs_graphics_thread(33.3333 ms): min=4.247 ms, median=33.333 ms, max=595.734 ms, 98.1647% within ±2% of 33.333 ms (0.841193% lower, 0.994137% higher)
info: =================================================
info: Number of memory leaks: 0
~$
 
Last edited:

AaronD

Active Member
Installed Ubuntu Studio 22.10, which already comes with OBS Studio 28.01.11-3. (22.04 comes with OBS 27; it took some additional steps to upgrade it to 28)

I tested this with the live USB flash drive. (22.10) It worked there.
I tried it again with the native install. It did not work there. Same as above.

What's different about the live image vs. installed, so that one works and the other doesn't?
 

ieugen

New Member
I'm on Debian Testing (bookworm/sid) .
Using OBS Studio - 28.0.1.11-3 (linux) - native and flatpak run com.obsproject.Studio --version: OBS Studio - 28.1.2 (linux) .

I am using swaywm (Wayland) sway --version: "sway version 1.7"

I am getting the same issue as explained above in both apps.

I can't see any properties in Window capture (existing obs project).
I can't add Window Screen capture - the options are not there.

Does the log message have anything to do with this ?

```
debug: Found portal inhibitor
```

I have tracked this to https://github.com/obsproject/obs-s...daa1ff/libobs/util/platform-nix-portal.c#L225 .
 

AaronD

Active Member
The automated analysis of a Log file says:
Warning: Old NVIDIA Drivers
Legacy NVIDIA 390 drivers do not support window capture on EGL.

Turns out yes, I was using 390.
NVIDIA.png

Upgraded to 418, rebooted, and it segfaults on startup:
Critical: Initialize Failed
Failed to initialize video. Your GPU may not be supported, or your graphics drivers may need to be updated.

Back to 390, and at least it runs.
 

tomwieden

New Member
I also have blank screen when choosing pipewire as recommended to record either a window or the whole screen on my computer:

- Microsoft Surface Pro8
- fresh install of current Manjaro (everything works, touch screen, pencil, "signiture keyboard",...)
- wayland
- fresh install of current OBS

Can I provide any additional info?
 

AaronD

Active Member
Solved!

I also had a problem with NVENC not working. The fix for that was to update to the latest technically-supported driver, which also killed the laptop screen. A BIOS setting got the laptop screen back. Then OBS had a different error and still couldn't use NVENC. But the different error pointed to a setting that fixed it.
Now that *that* problem is solved, I tried this one again, and it works too! Yay!

Pipewire still doesn't work, still as described above. But Xcomposite does. As long as I have *something* that works, I'm happy.
 
Top