Screen recording does not work

The screenshot/screen recording tool works for screenshot, but the screen recording button is not visible. My operating system is postmarketOS (based on Alpine Linux) and I assume the button is not showing due to some missing dependency. It is also possible that this is a bug. What are the screen recording dependencies?

OS: postmarketOS v22.06 (GNOME 43) Device: Purism Librem 5

You need the pipewire gstreamer element in order to record the contents of the screen.

Can you confirm that it is by design to hide the button in those cases? Are there other cases besides dependencies that can hide the button? Do the packages have to be configured in a certain way or is it enough that they are in the system? For example change pulseaudio etc to pipewire? Namely, I installed the nup packages earlier, but just installing it doesn’t seem to have changed anything.

Which versions of gstreamer and pipewire are needed? Would you link to?

Now Pipewire is used, at least for audio, how do I check that it is also used for other multimedia (video)? And more importantly, how can I check that gnome-shell detects pipewire (and gstreamer)?

pactl info

Server Name: PulseAudio (on PipeWire 0.3.55)

Yes, it’s by design; and, no: the button is hidden if the shell cannot create the following GStreamer pipeline:

    static canScreencast() {
        const elements = [
            'pipewiresrc',
            'filesink',
            ...DEFAULT_PIPELINE.split('!').map(e => e.trim().split(' ').at(0)),
        ];
        return Gst.init_check(null) &&
            elements.every(e => Gst.ElementFactory.find(e) != null);
    }

with the DEFAULT_PIPELINE being:

const DEFAULT_PIPELINE = 'videoconvert chroma-mode=GST_VIDEO_CHROMA_MODE_NONE dither=GST_VIDEO_DITHER_NONE matrix-mode=GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY n-threads=%T ! queue ! vp8enc cpu-used=16 max-quantizer=17 deadline=1 keyframe-mode=disabled threads=%T static-threshold=1000 buffer-size=20000 ! queue ! webmmux';

I would recommend asking on a postmarketOS forum how to ensure that pipewire is running and can be used by GStreamer.

Just to make sure, there is no way to check how and what of these services (pipewire, gstreamer) GNOME sees?

Off-topic: Is it really not possible to use screen recording in distributions that use pulseaudio? For example, I have one Debian installation that I was thinking of upgrading to GNOME 43, but for some reasons I’m keeping PulseAudio instead of PipeWire.

gstreamer is not a service, but you can list the available elements using gst-inspect-1.0. This should contain pipewiresrc for gnome-shell to show the screen recorder button. Also make sure to restart your session, so the new elements are picked up by gnome-shell.

The pipewire sound server is not used or required by the screen recorder, so it should be possible to run pipewire in parallel with pulseaudio and only use it for screencasts.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.