GStreamer and Linux, screen recording works well on Xorg but not on Wayland.

Nicolas Dufresne nicolas at ndufresne.ca
Sat Jul 15 10:51:24 UTC 2023


Le ven. 14 juill. 2023, 07 h 15, Davide Perini via gstreamer-devel <
gstreamer-devel at lists.freedesktop.org> a écrit :

> Thanks for the answer, I really appreciate it.
>
> Is it possible to run a command to check if everything works?
> I mean can I test it with a command like this before developing my
> integration in my software?
>
> Isn't this command the right one to use?
>
> gst-launch-1.0 pipewiresrc ! fd=%d path=%u ! videoconvert ! xvimagesink
>
> If yes, how can retrieve the right fd and path variable to use using CLI?
>
> I want to test it via CLI before developing a software for it if possible.
>

The attached program is in python and should just work.

python3 snippet.py

The path is return through a dbus IPC call.

Nicolas


> Thanks!!!
> Davide
>
>
>
> Il 13/07/2023 15:58, Nicolas Dufresne via gstreamer-devel ha scritto:
>
> Hi Davide,
>
> Le mardi 11 juillet 2023 à 23:45 +0200, Davide Perini via gstreamer-devel
> a écrit :
>
> Hi all,
> I'm trying to use GStreamer on Wayland and it seems to have some
> problems...
>
> This pipeline:
> gst-launch-1.0 ximagesrc startx=1 endx=3839 starty=0 endy=2159 !
> video/x-raw,framerate=30/1 ! videoscale method=0 ! ximagesink
>
> works well on Xorg, but not on Wayland.
>
>
> ximagesrc will have very little use anyway on Wayland, as wayland have
> built-in privacy security. Please consider using the appropriate portal and
> pipewire streams for this purpose. The following link is an example on how
> to do this in your own application.
>
> https://gitlab.gnome.org/-/snippets/19
>
> Nicolas
>
>
> On wayland I have this error:
> Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL
> ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock:
> GstSystemClock Redistribute latency... WARNING: from element
> /GstPipeline:pipeline0/GstXImageSink:ximagesink0: Pipeline construction is
> invalid, please add queues. Additional debug info:
> ../gstreamer/subprojects/gstreamer/libs/gst/base/gstbasesink.c(1249):
> gst_base_sink_query_latency ():
> /GstPipeline:pipeline0/GstXImageSink:ximagesink0: Not enough buffering
> available for the processing deadline of 0:00:00.015000000, add enough
> queues to buffer 0:00:00.015000000 additional data. Shortening processing
> latency to 0:00:00.000000000. WARNING: from element
> /GstPipeline:pipeline0/GstXImageSink:ximagesink0: Pipeline construction is
> invalid, please add queues. Additional debug info:
> ../gstreamer/subprojects/gstreamer/libs/gst/base/gstbasesink.c(1249):
> gst_base_sink_query_latency ():
> /GstPipeline:pipeline0/GstXImageSink:ximagesink0: Not enough buffering
> available for the processing deadline of 0:00:00.015000000, add enough
> queues to buffer 0:00:00.015000000 additional data. Shortening processing
> latency to 0:00:00.000000000. X Error of failed request: BadMatch (invalid
> parameter attributes) Major opcode of failed request: 73 (X_GetImage)
> Serial number of failed request: 52 Current serial number in output stream:
> 52 Is there any fix for this since Xorg is going to be deprecated
> everywhere? :) Thanks Davide
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20230715/06d4c7f5/attachment.htm>


More information about the gstreamer-devel mailing list