safijari / decky-recorder-fork

Other
48 stars 13 forks source link

Issues when using decky recorder on Bazzite #47

Open fsworld009 opened 3 weeks ago

fsworld009 commented 3 weeks ago

Tested this plugin on Bazzite.

I understand Bazzite is not officially supported, so there's no urgency to fix anything. I'm sharing my debug notes here and hoping someone can help figure out where I'm stuck at.

1. The recording won't start

According to log

(gst-plugin-scanner:32953): GStreamer-WARNING **: 19:07:42.463: Failed to load plugin '/home/fsworld009/homebrew/plugins/decky-recorder/bin/gstreamer-1.0/libgstbz2.so': libbz2.so.1.0: cannot open shared object file: No such file or directory

(gst-plugin-scanner:32953): GStreamer-WARNING **: 19:07:42.480: Failed to load plugin '/home/fsworld009/homebrew/plugins/decky-recorder/bin/gstreamer-1.0/libgstfaac.so': libfaac.so.0: cannot open shared object file: No such file or directory

(gst-plugin-scanner:32953): GStreamer-WARNING **: 19:07:42.490: Failed to load plugin '/home/fsworld009/homebrew/plugins/decky-recorder/bin/gstreamer-1.0/libgstjpeg.so': libjpeg.so.8: cannot open shared object file: No such file or directory

(gst-plugin-scanner:32953): GStreamer-WARNING **: 19:07:42.642: Failed to load plugin '/home/fsworld009/homebrew/plugins/decky-recorder/bin/gstreamer-1.0/libgstmatroska.so': libbz2.so.1.0: cannot open shared object file: No such file or directory

(gst-plugin-scanner:32953): GStreamer-WARNING **: 19:07:42.716: Failed to load plugin '/home/fsworld009/homebrew/plugins/decky-recorder/bin/gstreamer-1.0/libgstvpx.so': libvpx.so.8: cannot open shared object file: No such file or directory

(gst-plugin-scanner:32953): GStreamer-WARNING **: 19:07:42.719: Failed to load plugin '/home/fsworld009/homebrew/plugins/decky-recorder/bin/gstreamer-1.0/libgstwebrtcdsp.so': libwebrtc_audio_processing.so.1: cannot open shared object file: No such file or directory

(gst-plugin-scanner:32953): GStreamer-WARNING **: 19:07:42.719: Failed to load plugin '/home/fsworld009/homebrew/plugins/decky-recorder/bin/gstreamer-1.0/libgstx265.so': libx265.so.199: cannot open shared object file: No such file or directory

I assume this is because some dependencies are missing in Bazzite. Current workaround is to manually copy the missing dependencies from steam deck to bin folder (for libfaac.so.0 I have to copy from https://archlinux.org/packages/extra/x86_64/faac/files/ )

2. After fixing above, the recording won't be saved as ffmpeg command will fail with

ffmpeg: /tmp/_MEIMA8QQr/libssl.so.3: version `OPENSSL_3.2.0' not found (required by /lib64/libcurl.so.4)

From what I can gather, it is likely caused by LD_LIBRARY_PATH injected from decky loader main program. The workaround is to manually unset this env var when calling ffmpeg in main.py.

3. Screenshot is broken:

Once a manual recording or rolling record is started, the screenshot function will stop working after taking one screenshot. When hitting screenshot button again, there will be sound playing, but no notification is shown, and no screenshot is saved.

I don't see any log from decky recorder, or steam.

gamescope log:

[gamescope] [Error] vulkan: Unable to acquire screenshot texture. Out of textures.
[gamescope] [Error] xwm: Oh no, we ran out of screenshot images. Not actually writing a screenshot.

At this point the only fix I can find is to turn off rolling recording, switch to desktop mode and switch back.

Currently I managed to fix 1. and 2. on my side but haven't found a way to fix 3.

fsworld009 commented 3 weeks ago

Found the same issue with the new Steam Game Recording in beta client, so I reported to gamescope repo https://github.com/ValveSoftware/gamescope/issues/1489