Closed swingstate closed 2 years ago
To my knowledge, UxPlay has not been tested on RPi4, but the RPi4 should be powerful enough for gstreamer to work OK.
To see what is going on with your setup.
(1) run uxplay -d to get explicit (RAOP) debug output. (2) GStreamer can be debugged using "export GST_DEBUG=2" before running uxplay (3) repeat , using GST_DEBUG=4
Hopefully, one would be able to see what your issue is from these
To me the log looks fine from what I understand. Tried again from my Macbook and there seems to be a Videostream. However, the picture on the screen does not change, I only see the ubuntu console.
CPU load is 15 - 20%, few peaks at 45% when running uxplay Memory load is 130MB
I attached the log file.
Video was streaming, but not being displayed.
Then there is a TEARDOWN request. I suppose this is you stopping the client (clicking on "StopStreaming"?) Or did it stop by itself?
I suspect you dont have a working GStreamer pipeline. probably you have not installed a needed gstreamer plugin (?)
the uxplay debug system doesnt tell you about GStreamer. GStreamer's debug is activated by "export GST_DEBUG=2" in the terminal window, before you run uxplay. Then move up to GST_DEBUG=4
(which will have too much info, I'm afraid.)
raop_rtp_mirror video ntp = 1644531871848795, now = 1644531871783887, latency = -64908
raop_rtp_mirror video ntp = 1644531871882128, now = 1644531871817616, latency = -64512
raop_rtp_mirror video ntp = 1644531871915461, now = 1644531871850534, latency = -64927
raop_rtp_mirror video ntp = 1644531871948795, now = 1644531871883648, latency = -65147
raop_rtp_mirror video ntp = 1644531871982128, now = 1644531871916594, latency = -65534
raop_rtp_mirror video ntp = 1644531872015461, now = 1644531871951556, latency = -63905
raop_rtp_mirror video ntp = 1644531872048795, now = 1644531871983551, latency = -65244
Received video streaming performance info packet from client
raop_rtp_mirror tcp socket closed
httpd receiving on socket 27
conn_request
TEARDOWN rtsp://192.168.178.105/7733720095892062347 RTSP/1.0
Content-Length: 69
Content-Type: application/x-apple-binary-plist
CSeq: 18
DACP-ID: 7AE31B99A69BFEDD
Active-Remote: 3429634580
User-Agent: AirPlay/610.14.1
GST_DEBUG=2 only reports errors
GST_DEBUG=4 reports EVERYTHING!
not sure if I got your advise 100%, but this is with "2", sounds a bit like it cannot connect to the PIs HDMI? And yes, I stopped mirroring which was logged rightfully.
pi@ubuntu:~$ export GST_DEBUG=2
pi@ubuntu:~$ uxplay
0:00:00.265922064 1393 0x14b2e00 WARN gleglgbm gstgl_gbm_utils.c:473:gst_gl_gbm_find_and_open_drm_node: Found no matching DRM devices
0:00:00.266035859 1393 0x14b2e00 ERROR gldisplay gstgldisplay_gbm.c:439:gst_gl_display_gbm_new: could not find or open DRM device
0:00:00.269611998 1393 0x14b2e00 WARN glwindow gstglwindow.c:323:gst_gl_window_new: Could not create window. user specified (null), creating dummy window
0:00:00.270202957 1393 0x1477928 WARN glcontext gstglcontext.c:1257:gst_gl_context_create_thread:<glcontextegl0> Failed to create context
0:00:00.270336456 1393 0x14b2e00 WARN glimagesink gstglimagesink.c:1095:_ensure_gl_setup:<sink> error: Failed to initialize egl: EGL_NOT_INITIALIZED
0:00:01.696920602 1393 0x14b2e00 WARN kmssink gstkmssink.c:848:gst_kms_sink_start:<video_sink-actual-sink-kms> error: Could not open DRM module (NULL)
0:00:01.696981749 1393 0x14b2e00 WARN kmssink gstkmssink.c:848:gst_kms_sink_start:<video_sink-actual-sink-kms> error: reason: No such file or directory (2)
0:00:01.697100545 1393 0x14b2e00 WARN basesink gstbasesink.c:5869:gst_base_sink_change_state:<video_sink-actual-sink-kms> error: Failed to start
0:00:01.699453397 1393 0x14b2e00 WARN ximagesink ximagesink.c:867:gst_x_image_sink_xcontext_get:<video_sink-actual-sink-ximage> error: Could not initialise X output
0:00:01.699624007 1393 0x14b2e00 WARN ximagesink ximagesink.c:867:gst_x_image_sink_xcontext_get:<video_sink-actual-sink-ximage> error: Could not open display
0:00:01.702852908 1393 0x14b2e00 WARN waylandsink gstwaylandsink.c:362:gst_wayland_sink_find_display:<video_sink-actual-sink-wayland> warning: Could not initialise Wayland output
0:00:01.702913704 1393 0x14b2e00 WARN waylandsink gstwaylandsink.c:362:gst_wayland_sink_find_display:<video_sink-actual-sink-wayland> warning: Failed to create GstWlDisplay: 'Failed to connect to the wayland display '(default)''
When I start screen mirroring:
Initialized server socket(s)
Accepted IPv4 client on socket 27
Local: 192.168.178.105
Remote: 192.168.178.37
Open connections: 1
Client identified as User-Agent: AirPlay/610.14.1
Accepted IPv4 client on socket 29
Local: 192.168.178.105
Remote: 192.168.178.37
Open connections: 2
raop_rtp_mirror starting mirroring
0:04:02.122967268 1393 0x1477960 WARN v4l2videodec gstv4l2videodec.c:861:gst_v4l2_video_dec_decide_allocation:<v4l2h264dec0> Duration invalid, not setting latency
0:04:02.294539641 1393 0x1477f88 WARN v4l2bufferpool gstv4l2bufferpool.c:1288:gst_v4l2_buffer_pool_dqbuf:<v4l2h264dec0:pool0:src> Driver should never set v4l2_buffer.field to ANY
^CStopping...
Removing connection for socket 27
Destroying connection
Open connections: 1
Removing connection for socket 29
Destroying connection
Open connections: 0
and log level 4, attached due to size.
Log says "...Could not initialise Wayland output..." . That's beyond my knowledge, however I'll google that later and try to understand if that's a plugin or lib I need to install.
gstreamer tried all the videosinks it could find to test if they worked. none did, (the last one tried was waylandsink for a Wayland system (the intended replacement for X11))
So in the end it created the "fakesink" video sink, something like sending the video stream to die in /dev/null (nowhere)!
:00:01.728554121 1427 0x14a6000 INFO GST_ELEMENT_FACTORY gstelementfactory.c:360:gst_element_factory_create: creating element "fakesink" named "fake-video-sink"
Please at least see if the audio stream works. If the client is a macbook have some youtube video with audio stream.
To see what you might be missing, what do you get with
sudo apt list -- installed | grep -i gstreamer
What video hardware does your Rpi 4 use?
maybe this is helpful?
https://qengineering.eu/install-gstreamer-1.18-on-raspberry-pi-4.html
If you get it working well on RPi4, I'll mention RPi 4 on the README for UxPlay.
I think UxPlay ought to work fine on the 4, but the earlier Pi's are not powerful enough for running GStreamer without a lot of latency.
What video hardware does your Rpi 4 use?
https://www.raspberrypi.com/products/raspberry-pi-4-model-b/specifications/
The GPU is this:
https://www.cpu-monkey.com/en/igpu-broadcom_videocore_vi-221
I installed the GStreamer packages by following the page you posted above.
$ sudo apt-get install libx264-dev libjpeg-dev
$ sudo apt-get install libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer-plugins-bad1.0-dev \
gstreamer1.0-plugins-ugly \
gstreamer1.0-tools \
gstreamer1.0-gl \
gstreamer1.0-gtk3
$ sudo apt-get install gstreamer1.0-pulseaudio
No changes. I can pick Uxplay as Airplay target on the IPhone and connect to it but nothing is displayed or audible from the screen. If I listen to music and switch to Airplay the stream is still running in the IPhone app but no audio is coming from the Screen.
Short logs from audio streaming test:
uxplay
using system MAC address dc:a6:32:01:a2:fb
Initialized server socket(s)
Accepted IPv4 client on socket 27
Local: 192.168.178.105
Remote: 192.168.178.102
Open connections: 1
Client identified as User-Agent: AirPlay/610.14.21
Accepted IPv4 client on socket 29
Local: 192.168.178.105
Remote: 192.168.178.102
Open connections: 2
ct=2 spf=352 usingScreen=0 isMedia=1 audioFormat=0x40000
start audio connection, format ALAC 44100/16/2
raop_rtp starting audio
AL lib: (EE) ALCplaybackAlsa_reset: snd_pcm_hw_params(self->pcmHandle, hp) failed: File descriptor in bad stateConnection closed for socket 29
Destroying connection
Open connections: 1
Connection closed for socket 27
Destroying connection
Open connections: 0
^CStopping...
Full logs: uxplay-loglevel4-audiostream.txt
in the above debug,
GStreamer cannot find either working audio or working video on your system. It gives up and creates "fakesinks" for both. according to the debug log.
This isnt an issue in UxPlay. Try testing gstreamer by itself and get it working before trying uxplay.
what exactly does
sudo apt list -- installed | grep -i gstreamer
show?
maybe its a hardware issue? some kind of configuration needed? Focus on getting GStreamer properly installed and working. When that is done, uxplay should work
line 164
0:00:00.228573648 4620 0x223f000 INFO GST_ELEMENT_FACTORY gstelementfactory.c:360:gst_element_factory_create: creating element "fakesink" named "fake-audio-sink"
line 673
0:00:01.728988999 4620 0x223f000 INFO GST_ELEMENT_FACTORY gstelementfactory.c:360:gst_element_factory_create: creating element "fakesink" named "fake-video-sink"
Your video will use OpenGL. (-vs glimagesink) It's got hardware decoding for H264 video so should work just great with UxPlay when you have it properly set up. I guess google will be your friend in this..... There must be a good RPi 4 community.
H.265 (4kp60 decode), H264 (1080p60 decode, 1080p30 encode)
OpenGL ES 3.1, Vulkan 1.0
Probably got good audio too.
for audio the article I referenced says
$ sudo apt-get install gstreamer1.0-pulseaudio
did you do this?
First get audio working, then work on the video. EDIT OK I see you did this
I assume you did do the suggested test?
With all GStreamer modules installed let's test the installation with $ gst-launch-1.0 videotestsrc ! videoconvert ! autovideosink .
Note that If any special item in the GStreamer pipeline turns out to be needed for this hardware it would be easy to make a "-rpi4" option to add it to uxplays's gstreamer pipelines.
UxPlay is mainly focussed on what happens before the video and audio are handed over to gstreamer.
what happens after that is a kind of "black box"
I bet this is a config issue, and not hardware related.
sudo apt list --installed | grep -i gstreamer
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
gir1.2-gstreamer-1.0/impish,now 1.18.5-1 armhf [installed,automatic]
gstreamer1.0-gl/impish,now 1.18.5-1 armhf [installed]
gstreamer1.0-gtk3/impish,now 1.18.5-1ubuntu2 armhf [installed]
gstreamer1.0-libav/impish,now 1.18.5-1 armhf [installed]
gstreamer1.0-plugins-bad/impish,now 1.18.5-1ubuntu1 armhf [installed]
gstreamer1.0-plugins-base/impish,now 1.18.5-1 armhf [installed,automatic]
gstreamer1.0-plugins-good/impish,now 1.18.5-1ubuntu2 armhf [installed,automatic]
gstreamer1.0-plugins-ugly/impish,now 1.18.5-1 armhf [installed]
gstreamer1.0-pulseaudio/impish,now 1.18.5-1ubuntu2 armhf [installed]
gstreamer1.0-tools/impish,now 1.18.5-1 armhf [installed]
gstreamer1.0-vaapi/impish,now 1.18.5-1 armhf [installed]
gstreamer1.0-x/impish,now 1.18.5-1 armhf [installed,automatic]
libgstreamer-gl1.0-0/impish,now 1.18.5-1 armhf [installed,automatic]
libgstreamer-opencv1.0-0/impish,now 1.18.5-1ubuntu1 armhf [installed,automatic]
libgstreamer-plugins-bad1.0-0/impish,now 1.18.5-1ubuntu1 armhf [installed,automatic]
libgstreamer-plugins-bad1.0-dev/impish,now 1.18.5-1ubuntu1 armhf [installed]
libgstreamer-plugins-base1.0-0/impish,now 1.18.5-1 armhf [installed,automatic]
libgstreamer-plugins-base1.0-dev/impish,now 1.18.5-1 armhf [installed]
libgstreamer-plugins-good1.0-0/impish,now 1.18.5-1ubuntu2 armhf [installed,automatic]
libgstreamer-plugins-good1.0-dev/impish,now 1.18.5-1ubuntu2 armhf [installed,automatic]
libgstreamer1.0-0/impish,now 1.18.5-1 armhf [installed,automatic]
libgstreamer1.0-dev/impish,now 1.18.5-1 armhf [installed]
I'll spend some time tonight to troubleshoot further and go through your comments.
first thing, do the gstreamer test:
gst-launch-1.0 videotestsrc ! videoconvert ! autovideosink
I did a fresh install with RPI OS 64Bit, installed the packages and can do the streamer test on the RPI terminal (not remotely through SSH). I can start uxplay and from the terminal it looks like it its accepting connections, however no audio or video makes it to the screen.
The audio and video is indeed making it through to gstreamer, but being dumped into the "fakesinks" because gstreamer cannnot find where they should go.
If the test
gst-launch-1.0 videotestsrc ! videoconvert ! autovideosink
works, looking to see what it is doing right with GST_DEBUG=4 (start with =2) might help see what working videosink was found
It seems I am wrong about the "fakesink" being a problem. I am now comparing your unsuccessful GST_DEBUG=4 trace with what I get for a working one on ubuntu21.10 I have them too, it seems they are a placeholder for the real sink that will later be chosen.
I'm continuing to compare. I'll update this if I see anything.
I compared my and your output. No difference for audio. No failures there
I dont understand why you dont hear audio. were you actually streaming audio as well as video?
Below I marked where you fail you are correctly trying to use glimagesink for video. It seems to get set up but then errors start connected to EGL and wayland (??) https://en.wikipedia.org/wiki/EGL_(API)
this link says
The [Raspberry Pi](https://en.wikipedia.org/wiki/Raspberry_Pi) single-board computer has an EGL interface to hardware-accelerated 3D graphics rendering.[[11]](https://en.wikipedia.org/wiki/EGL_(API)#cite_note-11)
so some extra stuff for EGL needs to be installed, I guess.
Perhaps you need to be running a Wayland display system on RPi 4B with ubuntu 21.10? try googling for clues https://forums.raspberrypi.com/viewtopic.php?t=313685
But this above says you need the RPi 4 with 4GB not 2GB ....
:00:00.266212735 1427 0x14a6000 INFO GST_PLUGIN_LOADING gstplugin.c:915:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstopengl.so" loaded
0:00:00.266280828 1427 0x14a6000 INFO GST_ELEMENT_FACTORY gstelementfactory.c:360:gst_element_factory_create: creating element "glimagesink" named "video_sink-actual-sink-glimage"
0:00:00.267162099 1427 0x14a6000 INFO GST_ELEMENT_FACTORY gstelementfactory.c:363:gst_element_factory_create: creating element "glupload"
0:00:00.267559355 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:752:gst_element_add_pad:<GstBaseTransform@0x172c0d0> adding pad 'sink'
0:00:00.267610670 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:752:gst_element_add_pad:<GstBaseTransform@0x172c0d0> adding pad 'src'
0:00:00.267650521 1427 0x14a6000 INFO GST_ELEMENT_FACTORY gstelementfactory.c:363:gst_element_factory_create: creating element "glcolorconvert"
0:00:00.267918519 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:752:gst_element_add_pad:<GstBaseTransform@0x172c338> adding pad 'sink'
0:00:00.267965389 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:752:gst_element_add_pad:<GstBaseTransform@0x172c338> adding pad 'src'
0:00:00.268004389 1427 0x14a6000 INFO GST_ELEMENT_FACTORY gstelementfactory.c:363:gst_element_factory_create: creating element "glcolorbalance"
0:00:00.268322979 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:752:gst_element_add_pad:<GstBaseTransform@0x17340b8> adding pad 'sink'
0:00:00.268371220 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:752:gst_element_add_pad:<GstBaseTransform@0x17340b8> adding pad 'src'
0:00:00.268474663 1427 0x14a6000 INFO GST_ELEMENT_PADS gstutils.c:1816:gst_element_link_pads_full: trying to link element gluploadelement0:src to element glcolorconvertelement0:sink
0:00:00.268506700 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:1009:gst_element_get_static_pad: found pad gluploadelement0:src
0:00:00.268533737 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:1009:gst_element_get_static_pad: found pad glcolorconvertelement0:sink
0:00:00.268560755 1427 0x14a6000 INFO GST_PADS gstutils.c:1632:prepare_link_maybe_ghosting: gluploadelement0 and glcolorconvertelement0 in same bin, no need for ghost pads
0:00:00.268598570 1427 0x14a6000 INFO GST_PADS gstpad.c:2382:gst_pad_link_prepare: trying to link gluploadelement0:src and glcolorconvertelement0:sink
0:00:00.268634607 1427 0x14a6000 INFO GST_PADS gstpad.c:4314:gst_pad_peer_query:<gluploadelement0:sink> pad has no peer
0:00:00.272554226 1427 0x14a6000 INFO GST_PADS gstpad.c:4314:gst_pad_peer_query:<glcolorconvertelement0:src> pad has no peer
0:00:00.272889279 1427 0x14a6000 INFO GST_PADS gstpad.c:2590:gst_pad_link_full: linked gluploadelement0:src and glcolorconvertelement0:sink, successful
0:00:00.272917816 1427 0x14a6000 INFO GST_EVENT gstevent.c:1610:gst_event_new_reconfigure: creating reconfigure event
0:00:00.272944908 1427 0x14a6000 INFO GST_EVENT gstpad.c:5903:gst_pad_send_event_unchecked:<gluploadelement0:src> Received event on flushing pad. Discarding
0:00:00.272986241 1427 0x14a6000 INFO GST_ELEMENT_PADS gstutils.c:1816:gst_element_link_pads_full: trying to link element glcolorconvertelement0:src to element glcolorbalance0:sink
0:00:00.273015723 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:1009:gst_element_get_static_pad: found pad glcolorconvertelement0:src
0:00:00.273040760 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:1009:gst_element_get_static_pad: found pad glcolorbalance0:sink
0:00:00.273066296 1427 0x14a6000 INFO GST_PADS gstutils.c:1632:prepare_link_maybe_ghosting: glcolorconvertelement0 and glcolorbalance0 in same bin, no need for ghost pads
0:00:00.273099592 1427 0x14a6000 INFO GST_PADS gstpad.c:2382:gst_pad_link_prepare: trying to link glcolorconvertelement0:src and glcolorbalance0:sink
0:00:00.273131722 1427 0x14a6000 INFO GST_PADS gstpad.c:4314:gst_pad_peer_query:<gluploadelement0:sink> pad has no peer
0:00:00.277023249 1427 0x14a6000 INFO GST_PADS gstpad.c:4314:gst_pad_peer_query:<glcolorbalance0:src> pad has no peer
0:00:00.277139933 1427 0x14a6000 INFO GST_PADS gstpad.c:2590:gst_pad_link_full: linked glcolorconvertelement0:src and glcolorbalance0:sink, successful
0:00:00.277164989 1427 0x14a6000 INFO GST_EVENT gstevent.c:1610:gst_event_new_reconfigure: creating reconfigure event
0:00:00.277196896 1427 0x14a6000 INFO GST_EVENT gstpad.c:5903:gst_pad_send_event_unchecked:<glcolorconvertelement0:src> Received event on flushing pad. Discarding
0:00:00.277235895 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:1009:gst_element_get_static_pad: found pad gluploadelement0:sink
0:00:00.277306099 1427 0x14a6000 INFO GST_PADS gstpad.c:2382:gst_pad_link_prepare: trying to link sink:proxypad6 and gluploadelement0:sink
0:00:00.277334636 1427 0x14a6000 INFO GST_PADS gstpad.c:2590:gst_pad_link_full: linked sink:proxypad6 and gluploadelement0:sink, successful
0:00:00.277360043 1427 0x14a6000 INFO GST_EVENT gstevent.c:1610:gst_event_new_reconfigure: creating reconfigure event
0:00:00.277396654 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:752:gst_element_add_pad:<GstGLSinkBin@0x1727078> adding pad 'sink'
0:00:00.277469023 1427 0x14a6000 INFO gstcontrolbinding gstcontrolbinding.c:139:gst_control_binding_constructor:<glcolorbalance0> trying to put property 'contrast' under control
0:00:00.277518042 1427 0x14a6000 INFO gstcontrolbinding gstcontrolbinding.c:139:gst_control_binding_constructor:<glcolorbalance0> trying to put property 'brightness' under control
0:00:00.277558708 1427 0x14a6000 INFO gstcontrolbinding gstcontrolbinding.c:139:gst_control_binding_constructor:<glcolorbalance0> trying to put property 'hue' under control
0:00:00.277599522 1427 0x14a6000 INFO gstcontrolbinding gstcontrolbinding.c:139:gst_control_binding_constructor:<glcolorbalance0> trying to put property 'saturation' under control
0:00:00.277886983 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:752:gst_element_add_pad:<GstBaseSink@0x173b928> adding pad 'sink'
0:00:00.277972612 1427 0x14a6000 INFO GST_ELEMENT_PADS gstutils.c:1816:gst_element_link_pads_full: trying to link element glcolorbalance0:src to element sink:sink
0:00:00.278005908 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:1009:gst_element_get_static_pad: found pad glcolorbalance0:src
0:00:00.278032167 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:1009:gst_element_get_static_pad: found pad sink:sink
0:00:00.278059575 1427 0x14a6000 INFO GST_PADS gstutils.c:1632:prepare_link_maybe_ghosting: glcolorbalance0 and sink in same bin, no need for ghost pads
0:00:00.278095852 1427 0x14a6000 INFO GST_PADS gstpad.c:2382:gst_pad_link_prepare: trying to link glcolorbalance0:src and sink:sink
0:00:00.278139537 1427 0x14a6000 INFO GST_PADS gstpad.c:4314:gst_pad_peer_query:<(NULL):sink> pad has no peer
0:00:00.282174285 1427 0x14a6000 INFO GST_PADS gstpad.c:2590:gst_pad_link_full: linked glcolorbalance0:src and sink:sink, successful
0:00:00.282209118 1427 0x14a6000 INFO GST_EVENT gstevent.c:1610:gst_event_new_reconfigure: creating reconfigure event
0:00:00.282235748 1427 0x14a6000 INFO GST_EVENT gstpad.c:5903:gst_pad_send_event_unchecked:<glcolorbalance0:src> Received event on flushing pad. Discarding
0:00:00.282297358 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:1009:gst_element_get_static_pad: found pad video_sink-actual-sink-glimage:sink
0:00:00.284378454 1427 0x14a6000 INFO GST_STATES gstbin.c:2528:gst_bin_element_set_state:<sink> current NULL pending VOID_PENDING, desired next READY
0:00:00.284452454 1427 0x14a6000 INFO GST_PADS gstpad.c:4314:gst_pad_peer_query:<video_sink-actual-sink-glimage:sink> pad has no peer
0:00:00.284483083 1427 0x14a6000 INFO GST_CONTEXT gstglutils.c:115:pad_query:<sink:sink> pad peer query failed
0:00:00.284507583 1427 0x14a6000 INFO GST_CONTEXT gstglutils.c:176:_gst_context_query:<sink> posting need context message
0:00:00.284569064 1427 0x14a6000 INFO GST_PADS gstpad.c:4314:gst_pad_peer_query:<video_sink-actual-sink-glimage:sink> pad has no peer
0:00:00.284594064 1427 0x14a6000 INFO GST_CONTEXT gstglutils.c:115:pad_query:<sink:sink> pad peer query failed
0:00:00.284617841 1427 0x14a6000 INFO GST_CONTEXT gstglutils.c:176:_gst_context_query:<sink> posting need context message
0:00:00.284654156 1427 0x14a6000 INFO GST_PADS gstpad.c:4314:gst_pad_peer_query:<video_sink-actual-sink-glimage:sink> pad has no peer
0:00:00.284681415 1427 0x14a6000 INFO GST_CONTEXT gstglutils.c:115:pad_query:<sink:sink> pad peer query failed
0:00:00.284704878 1427 0x14a6000 INFO GST_CONTEXT gstglutils.c:176:_gst_context_query:<sink> posting need context message
0:00:00.284747433 1427 0x14a6000 INFO gldisplay gstgldisplay.c:290:gst_gl_display_new: creating a display, user choice:(NULL) (platform: (NULL))
0:00:00.285507279 1427 0x14a6000 INFO gldisplay gstgldisplay_wayland.c:113:gst_gl_display_wayland_new: Failed to open Wayland display connection.
0:00:00.286008498 1427 0x14a6000 INFO gldisplay gstgldisplay_x11.c:109:gst_gl_display_x11_new: Failed to open X11 display connection with name, '(null)'
****errors start here!****
0:00:00.286860621 1427 0x14a6000 WARN gleglgbm gstgl_gbm_utils.c:473:gst_gl_gbm_find_and_open_drm_node: Found no matching DRM devices
0:00:00.286944861 1427 0x14a6000 ERROR gldisplay gstgldisplay_gbm.c:439:gst_gl_display_gbm_new: could not find or open DRM device
0:00:00.290485113 1427 0x14a6000 INFO GST_CONTEXT gstglutils.c:240:gst_gl_element_propagate_display_context:<sink> posting have context (0x1744a00) message with display (0x1742850)
0:00:00.290573594 1427 0x14a6000 INFO GST_PADS gstpad.c:4314:gst_pad_peer_query:<video_sink-actual-sink-glimage:sink> pad has no peer
0:00:00.290607038 1427 0x14a6000 INFO GST_CONTEXT gstglutils.c:115:pad_query:<sink:sink> pad peer query failed
0:00:00.290631057 1427 0x14a6000 INFO GST_CONTEXT gstglutils.c:176:_gst_context_query:<sink> posting need context message
0:00:00.290702223 1427 0x14a6000 INFO glcontext gstglcontext.c:337:gst_gl_context_new: creating a context for display <gldisplayegl0>, user choice:(null)
0:00:00.290799722 1427 0x14a6000 INFO glwindow gstglwindow.c:278:gst_gl_window_new: creating a window, user choice:(null)
0:00:00.290828907 1427 0x14a6000 INFO glwindow gstglwindow_x11.c:136:gst_gl_window_x11_new: Wrong display type 32 for this window type 1
0:00:00.290854111 1427 0x14a6000 WARN glwindow gstglwindow.c:323:gst_gl_window_new: Could not create window. user specified (null), creating dummy window
0:00:00.291213145 1427 0x1704528 INFO glcontext gstglcontext.c:1250:gst_gl_context_create_thread:<glcontextegl0> Attempting to create opengl context. user chosen api(s) (any), compiled api support (opengl opengl3 gles2) display api (opengl opengl3 gles2)
0:00:00.291409088 1427 0x1704528 WARN glcontext gstglcontext.c:1257:gst_gl_context_create_thread:<glcontextegl0> Failed to create context
0:00:00.291460439 1427 0x14a6000 INFO glcontext gstglcontext.c:1060:gst_gl_context_create:<glcontextegl0> gl thread created
0:00:00.291542402 1427 0x14a6000 WARN glimagesink gstglimagesink.c:1095:_ensure_gl_setup:<sink> error: Failed to initialize egl: EGL_NOT_INITIALIZED
0:00:00.291582309 1427 0x14a6000 INFO GST_ERROR_SYSTEM gstelement.c:2234:gst_element_message_full_with_details:<sink> posting message: Failed to initialize egl: EGL_NOT_INITIALIZED
0:00:00.291627827 1427 0x14a6000 INFO GST_ERROR_SYSTEM gstelement.c:2261:gst_element_message_full_with_details:<sink> posted error message: Failed to initialize egl: EGL_NOT_INITIALIZED
0:00:00.291656975 1427 0x14a6000 INFO GST_STATES gstelement.c:3054:gst_element_change_state:<sink> have FAILURE change_state return
0:00:00.291685197 1427 0x14a6000 INFO GST_STATES gstelement.c:2641:gst_element_abort_state:<sink> aborting state from NULL to READY
0:00:00.291717234 1427 0x14a6000 INFO GST_STATES gstbin.c:2993:gst_bin_change_state_func:<video_sink-actual-sink-glimage> child 'sink' failed to go to state 2(READY)
0:00:00.291765511 1427 0x14a6000 INFO GST_STATES gstelement.c:2769:gst_element_continue_state:<sink> completed state change to NULL
0:00:00.291798789 1427 0x14a6000 INFO GST_STATES gstelement.c:2769:gst_element_continue_state:<glcolorbalance0> completed state change to NULL
0:00:00.291831529 1427 0x14a6000 INFO GST_STATES gstelement.c:2769:gst_element_continue_state:<glcolorconvertelement0> completed state change to NULL
0:00:00.291862103 1427 0x14a6000 INFO GST_STATES gstelement.c:2769:gst_element_continue_state:<gluploadelement0> completed state change to NULL
0:00:00.291898084 1427 0x14a6000 INFO GST_STATES gstelement.c:3054:gst_element_change_state:<video_sink-actual-sink-glimage> have FAILURE change_state return
0:00:00.291967139 1427 0x14a6000 INFO GST_STATES gstbin.c:2528:gst_bin_element_set_state:<sink> current NULL pending VOID_PENDING, desired next NULL
0:00:00.291994973 1427 0x14a6000 INFO GST_STATES gstbin.c:2646:gst_bin_element_set_state:<sink> skipping transition from NULL to NULL
0:00:00.292022454 1427 0x14a6000 INFO GST_STATES gstbin.c:2977:gst_bin_change_state_func:<video_sink-actual-sink-glimage> child 'sink' changed state to 1(NULL) successfully
0:00:00.292053528 1427 0x14a6000 INFO GST_STATES gstbin.c:2528:gst_bin_element_set_state:<glcolorbalance0> current NULL pending VOID_PENDING, desired next NULL
0:00:00.292080639 1427 0x14a6000 INFO GST_STATES gstbin.c:2646:gst_bin_element_set_state:<glcolorbalance0> skipping transition from NULL to NULL
0:00:00.292107953 1427 0x14a6000 INFO GST_STATES gstbin.c:2977:gst_bin_change_state_func:<video_sink-actual-sink-glimage> child 'glcolorbalance0' changed state to 1(NULL) successfully
0:00:00.292139101 1427 0x14a6000 INFO GST_STATES gstbin.c:2528:gst_bin_element_set_state:<glcolorconvertelement0> current NULL pending VOID_PENDING, desired next NULL
0:00:00.292165101 1427 0x14a6000 INFO GST_STATES gstbin.c:2646:gst_bin_element_set_state:<glcolorconvertelement0> skipping transition from NULL to NULL
0:00:00.292192230 1427 0x14a6000 INFO GST_STATES gstbin.c:2977:gst_bin_change_state_func:<video_sink-actual-sink-glimage> child 'glcolorconvertelement0' changed state to 1(NULL) successfully
0:00:00.292222119 1427 0x14a6000 INFO GST_STATES gstbin.c:2528:gst_bin_element_set_state:<gluploadelement0> current NULL pending VOID_PENDING, desired next NULL
0:00:00.292247878 1427 0x14a6000 INFO GST_STATES gstbin.c:2646:gst_bin_element_set_state:<gluploadelement0> skipping transition from NULL to NULL
0:00:00.292275934 1427 0x14a6000 INFO GST_STATES gstbin.c:2977:gst_bin_change_state_func:<video_sink-actual-sink-glimage> child 'gluploadelement0' changed state to 1(NULL) successfully
0:00:00.292303878 1427 0x14a6000 INFO GST_STATES gstelement.c:2769:gst_element_continue_state:<video_sink-actual-sink-glimage> completed state change to NULL
0:00:00.292344637 1427 0x14a6000 INFO GST_ELEMENT_PADS gstpad.c:2137:gst_pad_unlink: unlinking glcolorbalance0:src(0x1714690) and sink:sink(0x1714940)
0:00:00.292383414 1427 0x14a6000 INFO GST_ELEMENT_PADS gstpad.c:2192:gst_pad_unlink: unlinked glcolorbalance0:src and sink:sink
0:00:00.292417284 1427 0x14a6000 INFO GST_PARENTAGE gstbin.c:1826:gst_bin_remove_func:<video_sink-actual-sink-glimage> removed child "sink"
0:00:00.292464858 1427 0x14a6000 INFO GST_ELEMENT_PADS gstpad.c:2137:gst_pad_unlink: unlinking glcolorconvertelement0:src(0x17143e0) and glcolorbalance0:sink(0x1714538)
0:00:00.292499691 1427 0x14a6000 INFO GST_ELEMENT_PADS gstpad.c:2192:gst_pad_unlink: unlinked glcolorconvertelement0:src and glcolorbalance0:sink
0:00:00.292532783 1427 0x14a6000 INFO GST_PARENTAGE gstbin.c:1826:gst_bin_remove_func:<video_sink-actual-sink-glimage> removed child "glcolorbalance0"
0:00:00.292567505 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3345:gst_element_dispose:<glcolorbalance0> 0x17340b8 dispose
0:00:00.292593931 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:868:gst_element_remove_pad:<glcolorbalance0> removing pad 'sink'
0:00:00.292628061 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:868:gst_element_remove_pad:<glcolorbalance0> removing pad 'src'
0:00:00.292659968 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3391:gst_element_dispose:<glcolorbalance0> 0x17340b8 parent class dispose
0:00:00.292715671 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3423:gst_element_finalize:<glcolorbalance0> 0x17340b8 finalize
0:00:00.292742615 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3428:gst_element_finalize:<glcolorbalance0> 0x17340b8 finalize parent
0:00:00.292777337 1427 0x14a6000 INFO GST_ELEMENT_PADS gstpad.c:2137:gst_pad_unlink: unlinking gluploadelement0:src(0x1701cc8) and glcolorconvertelement0:sink(0x1714288)
0:00:00.292812244 1427 0x14a6000 INFO GST_ELEMENT_PADS gstpad.c:2192:gst_pad_unlink: unlinked gluploadelement0:src and glcolorconvertelement0:sink
0:00:00.292845818 1427 0x14a6000 INFO GST_PARENTAGE gstbin.c:1826:gst_bin_remove_func:<video_sink-actual-sink-glimage> removed child "glcolorconvertelement0"
0:00:00.292878651 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3345:gst_element_dispose:<glcolorconvertelement0> 0x172c338 dispose
0:00:00.292904744 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:868:gst_element_remove_pad:<glcolorconvertelement0> removing pad 'sink'
0:00:00.292935151 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:868:gst_element_remove_pad:<glcolorconvertelement0> removing pad 'src'
0:00:00.292966410 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3391:gst_element_dispose:<glcolorconvertelement0> 0x172c338 parent class dispose
0:00:00.292993521 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3423:gst_element_finalize:<glcolorconvertelement0> 0x172c338 finalize
0:00:00.293019335 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3428:gst_element_finalize:<glcolorconvertelement0> 0x172c338 finalize parent
0:00:00.293056539 1427 0x14a6000 INFO GST_ELEMENT_PADS gstpad.c:2137:gst_pad_unlink: unlinking sink:proxypad6(0x16e9908) and gluploadelement0:sink(0x1714130)
0:00:00.293086946 1427 0x14a6000 INFO GST_ELEMENT_PADS gstpad.c:2192:gst_pad_unlink: unlinked sink:proxypad6 and gluploadelement0:sink
0:00:00.293114316 1427 0x14a6000 INFO GST_PARENTAGE gstbin.c:1826:gst_bin_remove_func:<video_sink-actual-sink-glimage> removed child "gluploadelement0"
0:00:00.293146260 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3345:gst_element_dispose:<gluploadelement0> 0x172c0d0 dispose
0:00:00.293171945 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:868:gst_element_remove_pad:<gluploadelement0> removing pad 'sink'
0:00:00.293203630 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:868:gst_element_remove_pad:<gluploadelement0> removing pad 'src'
0:00:00.293234630 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3391:gst_element_dispose:<gluploadelement0> 0x172c0d0 parent class dispose
0:00:00.293268611 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3423:gst_element_finalize:<gluploadelement0> 0x172c0d0 finalize
0:00:00.293294130 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3428:gst_element_finalize:<gluploadelement0> 0x172c0d0 finalize parent
0:00:00.293321167 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3345:gst_element_dispose:<video_sink-actual-sink-glimage> 0x1727078 dispose
0:00:00.293346148 1427 0x14a6000 INFO GST_ELEMENT_PADS gstelement.c:868:gst_element_remove_pad:<video_sink-actual-sink-glimage> removing pad 'sink'
0:00:00.293383222 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3391:gst_element_dispose:<video_sink-actual-sink-glimage> 0x1727078 parent class dispose
0:00:00.293410740 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3423:gst_element_finalize:<video_sink-actual-sink-glimage> 0x1727078 finalize
0:00:00.293436592 1427 0x14a6000 INFO GST_REFCOUNTING gstelement.c:3428:gst_element_finalize:<video_sink-actual-sink-glimage> 0x1727078 finalize parent
It seems that there are a lot of complicated issues right now on RPi 4B, like 32bit vs 64 bit, Debian Bullseye vs Buster, changes in h264 support etc. UxPlay is RPiPlay with improvements and fixes, and gstreamer (usually for X86_64 architecture) instead of the OpenMax renderers that RPiPlay was created to use. (the gstreamer support from UxPlay was backported to RPiPlay, but I think most RPiPlay users use OpenMax.) But now OpenMax is being abandoned as obsolete in Debian-Bullseye-based distros for the Pi, and there are a lot of questions on this at the RPiPlay site.
The RPi 4 seems to have the right hardware (with built in h264 decoding) to run UxPlay well, if you can get gstreamer properly working to use it. If you can get RPiPlay working with its gstreamer option, then you can also run UxPlay. I cant really help with this because I don/t have the RPi 4 , and I now see its not a simple issue. You need to get help from RPi users.
I did a fresh install with RPI OS 64Bit, installed the packages and can do the streamer test on the RPI terminal (not remotely through SSH).
This might be because ubuntu-21.10 has moved the default display system from X11 to Wayland. You could try to make your RPi 4 use X11 instead of Wayland to see if that solves things. According to the post below some love Wayland some hate it. https://forums.raspberrypi.com/viewtopic.php?t=313685
I can start uxplay and from the terminal it looks like it its accepting connections, however no audio or video makes it to the screen.
I'm puzzled by the "no audio" as there were no audio errors showing up in the GST_DEBUG. You are sure that audio was streaming, and the volume wasn't turned down? the uxplay -d output will show the audio packets arriving one-by-one among the video packets.
I would say, solve the audio first, then try to solve the video issue.
Or the issues could be that you are running Wayland on an RPI 4 with only 2GB memory (?) . Are you running 32 bit or 64 bit ubuntu? I think you need the 32 bit ubuntu for your system. The post says something about things working well only on 4GB or 8GB systems. https://forums.raspberrypi.com/viewtopic.php?t=31368
"If it works on the 400 it will work with the 4B, the only caveat is you will need 4GB or 8GB memory versions, therefore Ubuntu are erring on side of caution, because users do not read anything and would try to install on 1GB & 2GB memory versions."
appreciate your support! I'll test a few things with the RPI and with VMs to see if this is RPI issue or I am doing a mistake somewhere. Suggest to close the issue.
R Pi 4 is now supported. see the readme. (you need to patch GStreamer, until updates come)
@swingstate the RPi support is for Bullseye not Buster.
cloned latest build, then build and installed on a PI4 w/ 2GB on ubuntu server 21.10 impish
Build went fine, no errors Server starts and accepts connections from local Macbook (12.3 beta) and iPhone 12 (IOS 15.4)
output in terminal looks fine:
PI is connected through HDMI to 34" screen. Although everything looks fine no content is mirrored.
Tried through SSH and with keyboard in front of screen, same results.
RPIplay works on some server, though audio does not mirror hence wanted to use UxPlay.
Any advise?