FDH2 / UxPlay

AirPlay Unix mirroring server
GNU General Public License v3.0
1.55k stars 78 forks source link

Fails to stream with "GStreamer error: Internal data stream error" #21

Closed mrgame64 closed 2 years ago

mrgame64 commented 2 years ago

I'm running UxPlay on a Radxa Zero (Amlogic S905Y) with Debian Buster on Linux 5.10. I have installed all possible GStreamer plugins under the sun (as per this guide: https://gstreamer.freedesktop.org/documentation/installing/on-linux.html?gi-language=c ), and I'm able to launch a GStreamer window when using gst-launch-1.0 videotestsrc ! videoconvert ! autovideosink

UxPlay launches just fine, as soon as I connect from my iPad (iOS 15), I briefly see a transparent window flash, and in the terminal after "Mirroring initialized successfully" I get "GStreamer error: internal data stream error." and "Re-launching server..."

I have previously tried RPiPlay, it would hold the connection just fine, but it doesn't display a window

EDIT: also tried with -vs ximagesink and -vs glimagesink but to no avail

fduncanh commented 2 years ago

First check your ximagesink plugin gst-launch-1.0 videotestsrc ! videoconvert ! ximagesink repeat with xvimagesink

Assuming you have a working ximagesink (or xvimagesink) try without audio in case the problem is autoaudiosink uxplay -a -vs ximagesink

post the output of uxplay -vs ximagesink.

UxPlay works with iOS 15 clients.

fduncanh commented 2 years ago

No response, so closing. Re-open if needed

scovit commented 2 years ago

Hello, I have the exact same behavior and error here, on debian testing, amd cpu and graphics.

I run with the following:

uxplay -vs ximagesink

Then I get:

using system MAC address 6c:4b:90:58:8c:96
Initialized server socket(s)

and after connecting with iOS 15.4 I get:

Accepted IPv4 client on socket 27
Local: 172.20.10.14
Remote: 172.20.10.1
Open connections: 1
Client identified as User-Agent: AirPlay/610.19.1
Accepted IPv4 client on socket 29
Local: 172.20.10.14
Remote: 172.20.10.1
Open connections: 2
raop_rtp_mirror starting mirroring
Begin streaming to GStreamer video pipeline
GStreamer error: Internal data stream error.
Removing connection for socket 27
Destroying connection
Open connections: 1
raop_rtp_mirror->running is no longer true
Removing connection for socket 29
Destroying connection
Open connections: 0
Initialized server socket(s)
fduncanh commented 2 years ago

You have a gstreamer error of some kind.
try different video plugins (-vs glimagesink, -vs gtksink etc)

do

export GST_DEBUG=2

before running uxplay to get some more info about the problem.

(export GST_DEBUG=4) give a LOT more information. Hopefully debug level 2 is enough to see what your issue is.

what does uname -a report about your system?

fduncanh commented 2 years ago

also try the -avdec option to force software video decoding.

(your debian system might be missing some "non-free" stuff for hardware decoding.)

panchiao220 commented 2 years ago

I encountered the same problem on Ubuntu 20.04.

..........L600N:~/Downloads/UxPlay-master/build$ ./uxplay -vs ximagesink using system MAC address ........:8c:77:53 Initialized server socket(s) Accepted IPv4 client on socket 29 Local: 192.168.1.169 Remote: 192.168.1.107 Open connections: 1 Client identified as User-Agent: AirPlay/605.1 Accepted IPv4 client on socket 31 Local: 192.168.1.169 Remote: 192.168.1.107 Open connections: 2 raop_rtp_mirror starting mirroring Begin streaming to GStreamer video pipeline GStreamer error: Internal data stream error. Removing connection for socket 29 Destroying connection Open connections: 1 raop_rtp_mirror->running is no longer true Removing connection for socket 31 Destroying connection Open connections: 0 Initialized server socket(s)

fduncanh commented 2 years ago

This just means that the gstreamer pipeline couldnt be constructed

GStreamer error: Internal data stream error

see if

export GST_DEBUG=2

before running uxplay tells you what is wrong. also try -vs xvimagesink, -vs glimagesink -vs gtksink, etc. and -avdec

panchiao220 commented 2 years ago

Appreciate your great input!! I am a new user on Ubuntu. ......L600N:export GST_DEBUG=2 ......L600N:~/Downloads/UxPlay-master/build$ ./uxplay -vs xvimagesink 0:00:00.118936060 8856 0x5557068d3b80 WARN GST_ELEMENT_FACTORY gstelementfactory.c:456:gst_element_factory_make: no such element factory "h264parse"! 0:00:00.118986460 8856 0x5557068d3b80 ERROR GST_PIPELINE grammar.y:816:priv_gst_parse_yyparse: no element "h264parse" 0:00:00.119014461 8856 0x5557068d3b80 ERROR GST_PIPELINE grammar.y:901:priv_gst_parse_yyparse: link has no sink [source=@0x5557067f8dc0] 0:00:00.120010735 8856 0x5557068d3b80 ERROR GST_PIPELINE grammar.y:901:priv_gst_parse_yyparse: link has no source [sink=@0x5557068e4120]

panchiao220 commented 2 years ago

I just fixed it by the following : sudo apt-get install gstreamer1.0-plugins-bad

it runs very well! Tks!

scovit commented 2 years ago

In debian sid the the error is the same as @panchiao220 but his solution doesn't work.

Steps to reproduce:

fduncanh commented 2 years ago

@scovit

GStreamer error: Internal data stream error.

This is a very generic error, just means that GStreamer failed to construct a pipeline, because of missing plugins etc. You need to give more details. However I will try to see if sid's package is working.

issue moved to new issue #90

fduncanh commented 2 years ago

@scovit I tested on Sid see issue #90

seems to work perfectly. Please respond in issue #90