FDH2 / UxPlay

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

Fedora RPMFusion codecs not properly installed(GStreamer error: Your GStreamer installation is missing a plug-in.) #235

Closed fidraC closed 7 months ago

fidraC commented 7 months ago
acheong@cardiff ~> uxplay -d
UxPlay 1.66: An Open-Source AirPlay mirroring and audio-streaming server.
Audio format 1: AAC-ELD 44100/2
GStreamer audio pipeline 1: "appsrc name=audio_source ! queue ! avdec_aac ! audioconvert ! audioresample ! volume name=volume ! level ! autoaudiosink sync=true"
Audio format 2: ALAC 44100/16/2
GStreamer audio pipeline 2: "appsrc name=audio_source ! queue ! avdec_alac ! audioconvert ! audioresample ! volume name=volume ! level ! autoaudiosink sync=false"
GStreamer video pipeline will be:
"appsrc name=video_source ! queue ! h264parse ! decodebin ! videoconvert ! autovideosink name=video_sink sync=true"
Initialized GStreamer video renderer
using system MAC address c8:4b:d6:32:d5:7d
Initialized server socket(s)
GStreamer error: Your GStreamer installation is missing a plug-in.
Exiting HTTP thread
fidraC commented 7 months ago
0:00:00.110716828 57185 0x7f87c8000e60 WARN               decodebin gstdecodebin2.c:4704:gst_decode_bin_expose:<decodebin0> error: no suitable plugins found:
Missing decoder: H.264 (video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, parsed=(boolean)true)
acheong@cardiff ~ [0|1]> gst-inspect-1.0 | grep decodebin
codecalpha:  vp8alphadecodebin: VP8 Alpha Decoder
codecalpha:  vp9alphadecodebin: VP9 Alpha Decoder
playback:  decodebin: Decoder Bin
playback:  decodebin3: Decoder Bin 3
playback:  uridecodebin: URI Decoder
playback:  uridecodebin3: URI Decoder
fidraC commented 7 months ago
acheong@cardiff ~ [SIGTRAP]> uxplay -vd decodebin3 -vs waylandsink
UxPlay 1.66: An Open-Source AirPlay mirroring and audio-streaming server.
using system MAC address c8:4b:d6:32:d5:7d
Initialized server socket(s)
0:00:00.097514414 57525 0x7f0ff0000b90 WARN                GST_CAPS gstpad.c:5787:pre_eventfunc_check:<src_0:proxypad4> caps video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, parsed=(boolean)true not accepted
Accepted IPv4 client on socket 25
Local: 10.2.74.185
Remote: 10.2.149.95
connection request from John Doe (iPhone12,1) with deviceID = B8:90:47:0B:0F:EB

Client identified as User-Agent: AirPlay/745.13.4
Accepted IPv4 client on socket 27
Local: 10.2.74.185
Remote: 10.2.149.95
raop_rtp_mirror starting mirroring
Begin streaming to GStreamer video pipeline
0:00:08.164261268 57525 0x7f0ff0000b90 WARN           basetransform gstbasetransform.c:1371:gst_base_transform_setcaps:<capsfilter0> transform could not transform video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)500, height=(int)1080, framerate=(fraction)0/1, coded-picture-structure=(string)frame, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)1:3:5:1, parsed=(boolean)true, profile=(string)high, level=(string)3.1 in anything we support
0:00:08.164454104 57525 0x7f0ff0000b90 WARN           basetransform gstbasetransform.c:1371:gst_base_transform_setcaps:<capsfilter0> transform could not transform video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)500, height=(int)1080, framerate=(fraction)0/1, coded-picture-structure=(string)frame, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)1:3:5:1, parsed=(boolean)true, profile=(string)high, level=(string)3.1 in anything we support
0:00:08.164535802 57525 0x7f0ff0000b90 WARN           basetransform gstbasetransform.c:1371:gst_base_transform_setcaps:<capsfilter0> transform could not transform video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)500, height=(int)1080, framerate=(fraction)0/1, coded-picture-structure=(string)frame, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)1:3:5:1, parsed=(boolean)true, profile=(string)high, level=(string)3.1 in anything we support
0:00:08.164626683 57525 0x7f0ff0000b90 WARN           basetransform gstbasetransform.c:1371:gst_base_transform_setcaps:<capsfilter0> transform could not transform video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)500, height=(int)1080, framerate=(fraction)0/1, coded-picture-structure=(string)frame, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)1:3:5:1, parsed=(boolean)true, profile=(string)high, level=(string)3.1 in anything we support
0:00:08.164716060 57525 0x7f0ff0000b90 WARN           basetransform gstbasetransform.c:1371:gst_base_transform_setcaps:<capsfilter0> transform could not transform video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)500, height=(int)1080, framerate=(fraction)0/1, coded-picture-structure=(string)frame, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)1:3:5:1, parsed=(boolean)true, profile=(string)high, level=(string)3.1 in anything we support
0:00:08.179623004 57525 0x7f0ff0000e60 WARN                 basesrc gstbasesrc.c:3132:gst_base_src_loop:<video_source> error: Internal data stream error.
0:00:08.179652144 57525 0x7f0ff0000e60 WARN                 basesrc gstbasesrc.c:3132:gst_base_src_loop:<video_source> error: streaming stopped, reason not-negotiated (-4)
0:00:08.179723681 57525 0x7f0ff0000e60 WARN                   queue gstqueue.c:992:gst_queue_handle_sink_event:<queue2> error: Internal data stream error.
0:00:08.179734095 57525 0x7f0ff0000e60 WARN                   queue gstqueue.c:992:gst_queue_handle_sink_event:<queue2> error: streaming stopped, reason not-negotiated (-4)
GStreamer error: Internal data stream error.
*** This is a generic GStreamer error that usually means that GStreamer
*** was unable to construct a working video pipeline.

*** If you are letting the default autovideosink select the videosink,
*** GStreamer may be trying to use non-functional hardware h264 video decoding.
*** Try using option -avdec to force software decoding or use -vs <videosink>
*** to select a videosink of your choice (see "man uxplay").

*** Raspberry Pi OS with (unpatched) GStreamer-1.18.4 needs "-bt709" uxplay option
Removing connection for socket 25
raop_rtp_mirror->running is no longer true
Removing connection for socket 27
Initialized server socket(s)
0:00:09.102097075 57525 0x7f0ff0000b90 WARN                GST_CAPS gstpad.c:5787:pre_eventfunc_check:<src_0:proxypad7> caps video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, parsed=(boolean)true not accepted

I'm on Fedora Linux 38 (Workstation Edition)

fduncanh commented 7 months ago

Maybe this? From the README:

Red Hat, or clones like CentOS (now continued as Rocky Linux or Alma Linux): Install gstreamer1-libav gstreamer1-plugins-bad-free (+ gstreamer1-vaapi for Intel/AMD graphics). In recent Fedora, gstreamer1-libav is renamed gstreamer1-plugin-libav. To get avdec_aac, install packages from rpmfusion.org: (get ffmpeg-libs from rpmfusion; on RHEL or clones, but not recent Fedora, also get gstreamer1-libav from there).

acheong08 commented 7 months ago

I've done all that but still got the error

fduncanh commented 7 months ago

try uxplay -avdec

fidraC commented 7 months ago

Looks like the problem was with RPMFusion not being the default. Adding --allowerasing to the dnf command fixed it after a restart