Closed mpisat closed 1 year ago
I guess that demanding x264 to be there is indeed silly, so it might be a good idea get rid of it. Does it work for you when removing or commenting this line here? https://github.com/meetecho/simple-whip-client/blob/main/src/whip-client.c#L272 That said, I'm on Fedor (37) and I do have the x264 plugin in there: I think it's in the bad plugins list.
If I disable x264 then
(whep-client:1007): libsoup-ERROR **: 13:37:42.296: libsoup2 symbols detected. Using libsoup2 and libsoup3 in the same process is not supported. Trace/breakpoint trap (core dumped)
and I tried removing libsoup3 but it also removes bad plugins, then I can't compile due to lack of webrtc plugin.
I guess gstreamer has started using libsoup3, while this client uses libsoup2. I have no immediate plan to migrate to libsoup3, to be honest (also considering I'd probably need to still support libsoup2 for systems that haven't updated to it yet). In case you're familiar with that library and are willing to submit a patch, I'd be happy to review.
I will try Fedora 37 (in docker) today since it uses older Gstreamer and probably not using libsoup3. Since it works for you, maybe it can work for me as well.
I used this Dockerfile
FROM fedora:37
RUN dnf update -y && \ dnf install -y git yasm flex bison libtool automake gstreamer1-devel gstreamer1-plugins-base-devel \ gstreamer1-plugins- gstreamer1-plugins-bad-free-devel \ gstreamer1-vaapi-devel gstreamer1- libnice-devel libsoup-devel json-glib-devel
RUN git clone https://github.com/meetecho/simple-whep-client.git RUN cd simple-whep-client && make
Gstreamer is 1.20.x and all plugins are installed. Fedora version 37.
[FATAL] [src/whep-client.c:whep_check_plugins:287] Required gstreamer plugin 'x264' not found [FATAL] [src/whep-client.c:whep_check_plugins:287] Required gstreamer plugin 'nice' not found
Because, gst-inspect-1.0 doesn't have x264 or nice, it does have openh264 though. I got libnice and libnice-devel installed.
Yeah, apparently I have that module because I use the rpmfusion repos too:
dnf provides /usr/lib64/gstreamer-1.0/libgstx264.so
[...]
gstreamer1-plugins-ugly-1:1.20.3-2.fc37.x86_64 : GStreamer 1.0 streaming media
: framework "ugly" plug-ins
Repo : rpmfusion-free
Matched from:
Filename : /usr/lib64/gstreamer-1.0/libgstx264.so
gstreamer1-plugins-ugly-1:1.20.5-1.fc37.x86_64 : GStreamer 1.0 streaming media
: framework "ugly" plug-ins
Repo : @System
Matched from:
Filename : /usr/lib64/gstreamer-1.0/libgstx264.so
gstreamer1-plugins-ugly-1:1.20.5-1.fc37.x86_64 : GStreamer 1.0 streaming media
: framework "ugly" plug-ins
Repo : rpmfusion-free-updates
Matched from:
Filename : /usr/lib64/gstreamer-1.0/libgstx264.so
so it's indeed not part of the main Fedora repos (neither on 38 nor 37). I always enable rpmfusion so I never notice anything particular is missing. Anyway, as I've said the x264
requirement is probably unneeded, so I'll remove it.
I removed the requirement for x264
in both the WHIP and WHEP clients.
Fedora 38 is the only OS that I can find Gstreamer 1.22 and full set of libs. However, it only comes with openh264.
Simple WHEP client
WHEP endpoint: https://fr.hidden.com/api/whip2 Bearer Token: hidden Trickle ICE: no (candidates in SDP answer) Auto STUN/TURN: no STUN server: (none) TURN server: (none) [FATAL] [src/whep-client.c:whep_check_plugins:287] Required gstreamer plugin 'x264' not found