You are not logged in.

#1 2024-02-22 11:23:48

Clyky
Member
Registered: 2022-08-15
Posts: 5

[SOLVED] Cannot capture screen in OBS Studio (wayland + nvidia)

I am trying to setup OBS Studio to capture an entire screen.

I have tried installing OBS Studio both through pacman (pacman -S obs-studio) and flathub (flatpak install --user com.obsproject.Studio), but the result is the same: when I try to capture a screen, I only get a black screen.

This is what OBS logs when I execute it using flatpak run com.obsproject.Studio and I start a recording with screen capture active:

qt.qpa.qgnomeplatform: Could not find color scheme  ""
debug: Found portal inhibitor
debug: Attempted path: share/obs/obs-studio/locale/en-US.ini
debug: Attempted path: /app/share/obs/obs-studio/locale/en-US.ini
debug: Attempted path: share/obs/obs-studio/locale.ini
debug: Attempted path: /app/share/obs/obs-studio/locale.ini
debug: Attempted path: share/obs/obs-studio/themes/Yami.qss
debug: Attempted path: /app/share/obs/obs-studio/themes/Yami.qss
info: Platform: Wayland
info: CPU Name: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
info: CPU Speed: 3247.528MHz
info: Physical Cores: 6, Logical Cores: 12
info: Physical Memory: 15835MB Total, 5347MB Free
info: Kernel Version: Linux 6.7.5-arch1-1
info: Flatpak Branch: stable
info: Flatpak Arch: x86_64
info: Flatpak Runtime: runtime/org.kde.Platform/x86_64/6.5
info: App Extensions:
info:  - com.obsproject.Studio.Plugin.GStreamerVaapi
info:  - com.obsproject.Studio.Locale
info: Runtime Extensions:
info:  - org.freedesktop.Platform.GL.default
info:  - org.freedesktop.Platform.GL.nvidia-545-29-06
info:  - org.freedesktop.Platform.VAAPI.Intel
info:  - org.freedesktop.Platform.openh264
info:  - org.kde.KStyle.Adwaita
info:  - org.kde.PlatformTheme.QGnomePlatform
info:  - org.kde.WaylandDecoration.QAdwaitaDecorations
info:  - org.kde.WaylandDecoration.QGnomePlatform-decoration
info:  - org.kde.Platform.Locale
info:  - org.freedesktop.Platform.GL.default
info: Flatpak Framework Version: 1.15.6
info: Desktop Environment: GNOME (gnome)
info: Session Type: wayland
info: Qt Version: 6.5.3 (runtime), 6.5.3 (compiled)
info: Portable mode: false
info: OBS 30.0.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: Using EGL/Wayland
info: Initialized EGL 1.5
info: Loading up OpenGL on adapter Intel Mesa Intel(R) UHD Graphics 630 (CFL GT2)
info: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 23.3.5 (git-ace31d82e0), shading language 4.60
info: ---------------------------------
info: video settings reset:
	base resolution:   1920x1080
	output resolution: 1920x1080
	downscale filter:  Bicubic
	fps:               60/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: Default
	id: default
info: ---------------------------------
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.22.2
info: [obs-browser]: CEF Version 103.0.5060.134 (runtime), 103.0.0-5060-shared-textures.2594+g17f8588+chromium-103.0.5060.134 (compiled)
info: NVENC supported
info: VAAPI: API version 1.18
info: FFmpeg VAAPI H264 encoding supported
info: FFmpeg VAAPI HEVC encoding supported
info: [obs-websocket] [obs_module_load] you can haz websockets (Version: 5.3.4 | RPC Version: 1)
info: [obs-websocket] [obs_module_load] Qt version (compile-time): 6.5.3 | Qt version (run-time): 6.5.3
info: [obs-websocket] [obs_module_load] Linked ASIO Version: 102800
info: [obs-websocket] [obs_module_load] Module loaded.
info: [obs-vaapi] version: 0.4.1, gst-runtime: 1.20.7
info: ---------------------------------
info:   Loaded Modules:
info:     obs-vaapi.so
info:     text-freetype2.so
info:     rtmp-services.so
info:     obs-x264.so
info:     obs-websocket.so
info:     obs-webrtc.so
info:     obs-vst.so
info:     obs-transitions.so
info:     obs-qsv11.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:     image-source.so
info:     frontend-tools.so
info:     decklink-output-ui.so
info:     decklink-captions.so
info: ---------------------------------
warning: QWidget::setTabOrder: 'first' and 'second' must be in the same window
info: ==== Startup complete ===============================================
info: All scene data cleared
info: ------------------------------------------------
info: pulse-input: Server name: 'pulseaudio 17.0'
info: pulse-input: Audio format: s16le, 48000 Hz, 2 channels
info: pulse-input: Started recording from 'alsa_output.pci-0000_00_1f.3.analog-stereo.monitor' (default)
info: [Loaded global audio device]: 'Desktop Audio'
info: pulse-input: Server name: 'pulseaudio 17.0'
info: pulse-input: Audio format: s16le, 44100 Hz, 2 channels
info: pulse-input: Started recording from 'alsa_input.pci-0000_00_1f.3.analog-stereo' (default)
info: [Loaded global audio device]: 'Mic/Aux'
info: pulse-input: Server name: 'pulseaudio 17.0'
info: pulse-input: Audio format: s16le, 44100 Hz, 2 channels
info: pulse-input: Started recording from 'alsa_input.pci-0000_00_1f.3.analog-stereo'
info: PipeWire initialized
info: Switched to scene 'Scene'
info: ------------------------------------------------
info: Loaded scenes:
info: - scene 'Scene':
info:     - source: 'Audio Input Capture (PulseAudio)' (pulse_input_capture)
info:     - source: 'Screen Capture (PipeWire)' (pipewire-desktop-capture-source)
info: ------------------------------------------------
info: [pipewire] Screencast session created
info: [pipewire] Asking for desktop
info: [pipewire] desktop selected, setting up screencast
info: [pipewire] Server version: 1.0.3
info: [pipewire] Library version: 0.3.65
info: [pipewire] Header version: 0.3.65
info: [pipewire] Created stream 0x64b0b16ae620
info: [pipewire] Stream 0x64b0b16ae620 state: "connecting" (error: none)
info: [pipewire] Playing stream 0x64b0b16ae620
info: [pipewire] Stream 0x64b0b16ae620 state: "paused" (error: none)
info: adding 42 milliseconds of audio buffering, total audio buffering is now 42 milliseconds (source: Mic/Aux)

info: ---------------------------------
info: [FFmpeg NVENC encoder: 'simple_video_stream'] settings:
	encoder:      NVIDIA NVENC H.264 (FFmpeg)
	rate_control: CBR
	bitrate:      2500
	cqp:          0
	keyint:       250
	preset:       p5
	tuning:       hq
	multipass:    qres
	profile:      high
	width:        1920
	height:       1080
	b-frames:     2
	psycho-aq:    1
	GPU:          0

info: libfdk_aac encoder created
info: libfdk_aac bitrate: 160, channels: 2
info: ==== Recording Start ===============================================
info: [ffmpeg muxer: 'simple_file_output'] Writing file '/home/riccardo/OBS-Recordings/2024-02-22_12-08-23.mkv'...
info: [ffmpeg muxer: 'simple_file_output'] Output of file '/home/riccardo/OBS-Recordings/2024-02-22_12-08-23.mkv' stopped
info: Output 'simple_file_output': stopping
info: Output 'simple_file_output': Total frames output: 221
info: Output 'simple_file_output': Total drawn frames: 234
info: ==== Recording Stop ================================================
info: libfdk_aac encoder destroyed
info: ==== Shutting down ==================================================
info: pulse-input: Stopped recording from 'alsa_output.pci-0000_00_1f.3.analog-stereo.monitor'
info: pulse-input: Got 1824 packets with 430491 frames
info: pulse-input: Stopped recording from 'alsa_input.pci-0000_00_1f.3.analog-stereo'
info: pulse-input: Got 1115 packets with 483272 frames
info: pulse-input: Stopped recording from 'alsa_input.pci-0000_00_1f.3.analog-stereo'
info: pulse-input: Got 1115 packets with 483272 frames
info: [pipewire] Stream 0x64b0b16ae620 state: "unconnected" (error: none)
info: All scene data cleared
info: ------------------------------------------------
info: [obs-websocket] [obs_module_unload] Shutting down...
error: Tried to call obs_frontend_remove_event_callback with no callbacks!
info: [obs-websocket] [obs_module_unload] Finished shutting down.
info: [Scripting] Total detached callbacks: 0
info: Freeing OBS context data
info: == Profiler Results =============================
info: run_program_init: 953.21 ms
info:  ┣OBSApp::AppInit: 4.961 ms
info:  ┃ ┗OBSApp::InitLocale: 0.809 ms
info:  ┗OBSApp::OBSInit: 829.253 ms
info:    ┣obs_startup: 3.54 ms
info:    ┗OBSBasic::OBSInit: 792.057 ms
info:      ┣OBSBasic::InitBasicConfig: 0.103 ms
info:      ┣OBSBasic::ResetAudio: 0.436 ms
info:      ┣OBSBasic::ResetVideo: 108.298 ms
info:      ┃ ┗obs_init_graphics: 99.457 ms
info:      ┃   ┗shader compilation: 41.58 ms
info:      ┣OBSBasic::InitOBSCallbacks: 0.004 ms
info:      ┣OBSBasic::InitHotkeys: 0.022 ms
info:      ┣obs_load_all_modules2: 604.099 ms
info:      ┃ ┣obs_init_module(aja-output-ui.so): 0.136 ms
info:      ┃ ┣obs_init_module(aja.so): 0.095 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.68 ms
info:      ┃ ┣obs_init_module(frontend-tools.so): 113.348 ms
info:      ┃ ┣obs_init_module(image-source.so): 0.007 ms
info:      ┃ ┣obs_init_module(linux-capture.so): 0 ms
info:      ┃ ┣obs_init_module(linux-jack.so): 0.004 ms
info:      ┃ ┣obs_init_module(linux-pipewire.so): 25.894 ms
info:      ┃ ┣obs_init_module(linux-pulseaudio.so): 0.002 ms
info:      ┃ ┣obs_init_module(linux-v4l2.so): 17.304 ms
info:      ┃ ┣obs_init_module(obs-browser.so): 0.068 ms
info:      ┃ ┣obs_init_module(obs-ffmpeg.so): 5.693 ms
info:      ┃ ┃ ┗nvenc_check: 0.986 ms
info:      ┃ ┣obs_init_module(obs-filters.so): 0.042 ms
info:      ┃ ┣obs_init_module(obs-libfdk.so): 0.002 ms
info:      ┃ ┣obs_init_module(obs-outputs.so): 0.005 ms
info:      ┃ ┣obs_init_module(obs-qsv11.so): 1.556 ms
info:      ┃ ┣obs_init_module(obs-transitions.so): 0.01 ms
info:      ┃ ┣obs_init_module(obs-vst.so): 0.004 ms
info:      ┃ ┣obs_init_module(obs-webrtc.so): 0.01 ms
info:      ┃ ┣obs_init_module(obs-websocket.so): 5.817 ms
info:      ┃ ┣obs_init_module(obs-x264.so): 0.004 ms
info:      ┃ ┣obs_init_module(rtmp-services.so): 0.991 ms
info:      ┃ ┣obs_init_module(text-freetype2.so): 0.018 ms
info:      ┃ ┗obs_init_module(obs-vaapi.so): 7.944 ms
info:      ┣OBSBasic::InitService: 1.18 ms
info:      ┣OBSBasic::ResetOutputs: 0.182 ms
info:      ┣OBSBasic::CreateHotkeys: 0.021 ms
info:      ┣OBSBasic::InitPrimitives: 0.054 ms
info:      ┗OBSBasic::Load: 47.732 ms
info: obs_hotkey_thread(25 ms): min=0 ms, median=0.001 ms, max=0.043 ms, 99th percentile=0.008 ms, 100% below 25 ms
info: audio_thread(Audio): min=0.01 ms, median=0.175 ms, max=7.783 ms, 99th percentile=2.047 ms
info:  ┗receive_audio: min=0.005 ms, median=1.403 ms, max=7.593 ms, 99th percentile=1.928 ms, 0.338156 calls per parent call
info:    ┣buffer_audio: min=0 ms, median=0.001 ms, max=0.035 ms, 99th percentile=0.01 ms
info:    ┗do_encode: min=0.33 ms, median=1.399 ms, max=7.587 ms, 99th percentile=1.921 ms
info:      ┣encode(simple_aac): min=0.31 ms, median=1.372 ms, max=1.879 ms, 99th percentile=1.823 ms
info:      ┗send_packet: min=0.001 ms, median=0.011 ms, max=6.264 ms, 99th percentile=0.084 ms
info: obs_graphics_thread(16.6667 ms): min=0.051 ms, median=0.871 ms, max=10.132 ms, 99th percentile=3.174 ms, 100% below 16.667 ms
info:  ┣tick_sources: min=0 ms, median=0.016 ms, max=0.384 ms, 99th percentile=0.057 ms
info:  ┣output_frame: min=0.026 ms, median=0.3 ms, max=3.547 ms, 99th percentile=1.651 ms
info:  ┃ ┣gs_context(video->graphics): min=0.025 ms, median=0.298 ms, max=2.955 ms, 99th percentile=0.819 ms
info:  ┃ ┃ ┣render_video: min=0.016 ms, median=0.073 ms, max=1.717 ms, 99th percentile=0.398 ms
info:  ┃ ┃ ┃ ┣render_main_texture: min=0.013 ms, median=0.064 ms, max=0.218 ms, 99th percentile=0.118 ms
info:  ┃ ┃ ┃ ┣render_convert_texture: min=0.054 ms, median=0.123 ms, max=0.681 ms, 99th percentile=0.367 ms, 0.333809 calls per parent call
info:  ┃ ┃ ┃ ┗stage_output_texture: min=0.023 ms, median=0.049 ms, max=0.959 ms, 99th percentile=0.117 ms, 0.333809 calls per parent call
info:  ┃ ┃ ┣gs_flush: min=0.004 ms, median=0.168 ms, max=2.874 ms, 99th percentile=0.31 ms
info:  ┃ ┃ ┗download_frame: min=0 ms, median=0.158 ms, max=0.298 ms, 99th percentile=0.241 ms, 0.333809 calls per parent call
info:  ┃ ┗output_video_data: min=0.493 ms, median=0.638 ms, max=2.865 ms, 99th percentile=2.838 ms, 0.332382 calls per parent call
info:  ┗render_displays: min=0.003 ms, median=0.458 ms, max=3.012 ms, 99th percentile=1.092 ms
info: video_thread(video): min=1.946 ms, median=2.941 ms, max=18.707 ms, 99th percentile=4.013 ms
info:  ┗receive_video: min=1.943 ms, median=2.937 ms, max=18.703 ms, 99th percentile=4.009 ms
info:    ┗do_encode: min=1.941 ms, median=2.935 ms, max=18.7 ms, 99th percentile=4.007 ms
info:      ┣encode(simple_video_stream): min=1.909 ms, median=2.904 ms, max=4.118 ms, 99th percentile=3.649 ms
info:      ┗send_packet: min=0.006 ms, median=0.033 ms, max=15.512 ms, 99th percentile=0.076 ms
info: =================================================
info: == Profiler Time Between Calls ==================
info: obs_hotkey_thread(25 ms): min=25.058 ms, median=25.146 ms, max=32.051 ms, 99.1471% within ±2% of 25 ms (0% lower, 0.852878% higher)
info: obs_graphics_thread(16.6667 ms): min=14.392 ms, median=16.666 ms, max=18.956 ms, 98.8571% within ±2% of 16.667 ms (0.571429% lower, 0.571429% higher)
info: =================================================
info: Number of memory leaks: 0

I am on GNOME an I have already installed the xdg-desktop-portal-gnome package. I also try to install xdg-desktop-portal-wlr, but it didn't change anything.

I noticed that also the Mozilla's WebRTC test page (linked in PipeWire#WebRTC_screen_sharing) cannot capture my screen.

Last edited by Clyky (2024-03-03 18:50:56)

Offline

#2 2024-03-03 18:50:31

Clyky
Member
Registered: 2022-08-15
Posts: 5

Re: [SOLVED] Cannot capture screen in OBS Studio (wayland + nvidia)

After some hours of digging I was able to fix the problem.

I was missing the package pipewire-pulse (see PipeWire#PulseAudio clients). I noticed this because the output of pactl info did NOT include the part "Server Name: PulseAudio (on PipeWire x.y.z)", but it was just "Server Name: PulseAudio".

I don't know how or why this package affects screen capturing. Anyway, after installing the pipewire-pulse package screen capturing through OBS Studio works.

Last edited by Clyky (2024-03-03 18:52:15)

Offline

Board footer

Powered by FluxBB