Situation
I wanted to record my screen with OBS and did the usual. Start the app, select what I want to record in the dialogue, but it did not record anything. (Except audio)
Then I checked if I had made any updates, because I know I recorded last week. I didn't do any updates, in fact, I updated and then recorded my screen last week. (including restarts inbetween)
Regardless of that, I tried updating, and nothing was fixed.
Can it still record?
I knew from firsthand experience that wf-recorder somehow recorded my screen on my other PC (also running Gentoo, but an nvidia GPU instead of an AMD GPU like the current system) a while back, where I had a similar issue that OBS could not record my screen. So, trying it out here, I get the same effect. wf-recorder is able to record my screen. At least that works.
Then I was thinking about trying it out on Discord, where on this PC it had worked before and even was able to stream the audio (which I did not expect to work, because it didn't on the other nvidia machine).
That did not work. And then I remembered, when selecting what to record in the dialogue, I used to see a working preview of what would be recorded, so I guess the issue is somewhere in that component (?).
More updates
I looked into it and found on other forums that you'd apparently need hyprland-guiutils. Okay, trying to install that made me realize that somehow it is not available yet on gentoo, because it used to be called hyprland-qtutils. So I went ahead and made some appropriate ebuilds, namely said package and copying existing ebuilds from the gentoo tree and updating their versions.
Okay, installing that... Recompiling hyprland... Good, all well and done, reboot, system still works, OBS however not.
What even broke??
I then read on another forum somewhere (or even on the issue tracker, idr, idc) that a user config might have broken something and logically (?) a new user could record. Seems plausible, so I tried creating a new user, adding them to the groups seat, audio, video, input and starting hyprland on another tty, recording... nothing.
Pipewire broke
My suspicion is that pipewire broke. The output logs of OBS regarding anything that failed (the rest of the log has no warnings, no errors, nothing):
Code: Select all
info: PipeWire initialized
info: Switched to scene 'Scene'
info: ------------------------------------------------
info: Loaded scenes:
info: - scene 'Scene':
info: - source: 'Screen Capture (PipeWire)' (pipewire-screen-capture-source)
info: ------------------------------------------------
info: [pipewire] Screencast session created
info: Device for 'Audio Output Capture' source Desktop Audio is also used for audio monitoring.
Deduplication logic is being applied to all monitored sources.
info: adding 42 milliseconds of audio buffering, total audio buffering is now 42 milliseconds (source: Mic/Aux)
info: [pipewire] Asking for monitor and window
warning: [pipewire] Failed to start screencast, denied or cancelled by user
Logging that... I close OBS, run ./.config/hypr/xdg-portal-hyprland > xdg.log 2>&1, start OBS, select a source, the portal crashes. Log is here: https://bpa.st/U4AQ
I THINK the interesting and only relevant part is this:
Code: Select all
[LOG] [screencopy] New session:
[
(/usr/libexec/xdg-desktop-portal:13410): xdg-desktop-portal-WARNING **: 18:20:20.058: A backend call failed: Message recipient disconnected from message bus without replying
** (/usr/libexec/xdg-desktop-portal:13410): WARNING **: 18:20:45.083: Failed to close session implementation: Timeout was reached
- - I don't quite understand what exactly is broken. How do I track this issue down further?
- What info do you need about my system if you wanted to and had time to help me?
Thanks and best regards.
EDIT:
It seems that quite a recent question: https://forums.gentoo.org/viewtopic-t-1175610.html has about the same issue. Their solution was to have USE=screencast set. I have that enabled globally and always had. And fyi I recompile the whole system yesterday, just to ... say that I did what I did... don't judge me!

