[Buildroot] How do I enable webrtc as part of external gstreamer, in buildroot
Peter Seiderer
ps.report at gmx.net
Mon Jul 8 18:57:02 UTC 2019
Hello Vered,
On Mon, 8 Jul 2019 15:30:01 +0300, Vered Kalef <vered.kalef at gmail.com> wrote:
> On Sun, Jul 7, 2019 at 9:40 PM Peter Seiderer <ps.report at gmx.net> wrote:
>
> > Hello Vered,
> >
> > please keep buildroot at busybox.net in CC
> >
> > On Sun, 7 Jul 2019 11:05:34 +0300, Vered Kalef <vered.kalef at gmail.com>
> > wrote:
> >
> > > On Thu, Jul 4, 2019 at 9:25 PM Peter Seiderer <ps.report at gmx.net> wrote:
> > >
> > > > Hello Vered,
> > > >
> > > > On Thu, 4 Jul 2019 15:38:59 +0300, Vered Kalef <vered.kalef at gmail.com>
> > > > wrote:
> > > >
> > > > > Hi all,
> > > > > I'm trying to install external gstreamer with webrtc enabled on
> > > > buildroot.
> > > >package/gst1-plugins-bad: add webrtc option
> > > > What do your mean with 'external'? Why 'external'?
> > > >
> > >
> > > I use buildroot 14.0. It doesn't contain webrtc build in and I can't
> > update
> > > to a later version so I added as an external the gstreamer with webrtc
> > > enabled.
> >
> > 14.0 does not make sense, the buildroot versions are
> > <year>.<month>.<release>,
> > did you mean 2014.02, 2014.05, 2014.8 or 2014.11?baffecda1678d68ab6d16514ae1903d2d4dc1e5d
> >
> The version is 2018.02
O.k, thanks...
>
> >
> > > I renamed the packaged so it won't conflict with the one built in within
> > > buildroot.
> > >
> > > >
> > > > > It seems this option is missing within the buildroot.
> > > >
> > > > Which option? There is definitely an GStreamer webrtc option (since
> > > > 2019.05), see [1]...
> > > >
> > > I don't see the option webrtc enabled, only webrtc-audio-processing,
> > which
> > > is different altogether.
> > >
> > > >
> > > > Which Buildroot version do you use?
> > > >
> > > 14.0
> >
> > I saw the option of webrtc, as you've mentioned, but, I can't upgrade to
> gstreamer version 1.16 .
O.k.
>
>
> > >
> > > >
> > > > > I've configured the mk file and the Config.in file.
> > > > > After installation when I check gst-inspect webrtcbin, I get -
> > > > >
> > > > > No such element or plugin ‘webrtcbin'
> > > > > What am I missing?
> > > >
> > > > Take a look at the gst1-plugins-bad configure output (or
> > > > build/gst1-plugins-bad-<version>/config.log for package/gst1-plugins-bad: add webrtc optiona hint
> > > > what is missing (look for webrtc entries)....
> >
> This file made the difference. It seems the problem is an old version of
> libnice, it should be greater than 0.1.14, so, I think I'll upgrade to
> buildroot 2018.11, which holds libnice 0.1.14
> and create the external gstreamer with webrtc enabled as you've done in
> version 2019.5.
> In your opinion will it do the work?
Maybe, you have to try it on your own ;-)
Alternative is to cherry-pick/back-port some patches to your buildroot
version, e.g. (untested):
$ git clone git://git.busybox.net/buildroot
$ cd buildroot
$ git checkout 2018.02.9
$ git checkout -b 2018.02.9-patched
# libnice: bump to version 0.1.14
$ git cherry-pick 16012f56cade49e7ca5d33ecdd6226c1b19fc4ac
# libnice: add gstreamer support
$ git cherry-pick 689c083f571e0c88463a451cb4e64c1470b67afb
# package/gst1-plugins-bad: add webrtc option
$ git cherry-pick baffecda1678d68ab6d16514ae1903d2d4dc1e5d
Regards,
Peter
>
>
>
> > Please take a look at the build/gst1-plugins-bad-<version>/config.log, is
> > webrtc enabled
> > e.g.:
> >
> > configure:91279: *** checking feature: WebRTC ***
> > configure:91283: *** for plug-ins: webrtc ***
> > configure:91327: checking for NICE
> > configure:91335: $PKG_CONFIG --exists --print-errors "nice >= 0.1.14"
> > configure:91338: $? = 0
> > configure:91353: $PKG_CONFIG --exists --print-errors "nice >= 0.1.14"
> > configure:91356: $? = 0
> > configure:91396: result: yes
> > configure:91412: *** These plugins will be built: webrtc
> >
> > > >
> > > > Do you open the dump and view the log file or is it additional log
> > file?
> > > Within the dump I see -
> > > 0:00:51.704162800 1051 0x7fff64004400 LOG GST_ELEMENT_FACTORY
> > > gstelementfactory.c:438:gst_element_factory_make: gstelementfactory: make
> > > "webrtcbin" "(NULL)"
> > > 0:00:51.704206500 1051 0x7fff64004400 LOG GST_ELEMENT_FACTORY
> > > gstelementfactory.c:142:gst_element_factory_find: no such element factory
> > > "webrtcbin"
> > > 0:00:51.704213200 1051 0x7fff64004400 WARN GST_ELEMENT_FACTORY
> > > gstelementfactory.c:456:gst_element_factory_make: no such element factory
> > > "webrtcbin"!
> >
> > Nothing new, gstreamer is unable to find an element named webrtcbin,
> > make sure the plugin libgstwebrtc.so is build and installed (at the right
> > location and with the right dependencies) at the target...
> >
> > Regards,
> > Peter
> >
> > >
> > > > gst1-plugins-bad/Config.in config
> > > > > BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTC bool "webrtc" depends on
> > > > > !BR2_STATIC_LIBS # libnice -> gnutls select
> > > > BR2_PACKAGE_GST1_PLUGINS_BASE #
> > > > > libgstsdp select BR2_PACKAGE_LIBNICE help WebRTC plugins (webrtcbin
> > - a
> > > > bin
> > > > > for webrtc connections comment "webrtc needs a toolchain w/ dynamic
> > > > > library" depends on BR2_STATIC_LIBS gst1-plugins-bad/
> > gst1-plugins-bad.mk
> > > > > ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTC),y)
> > > > > GST1_PLUGINS_BAD_CONF_OPTS += --enable-webrtc
> > > > GST1_PLUGINS_BAD_DEPENDENCIES
> > > > > += libnice GST1_PLUGINS_BAD_DEPENDENCIES += gst1-plugins-base
> > libnice
> > > > else
> > > > > GST1_PLUGINS_BAD_CONF_OPTS += --disable-webrtc endif
> > > > >
> > > >baffecda1678d68ab6d16514ae1903d2d4dc1e5d
> > > > Mind to share your config and/or defconfig file?
> > > >
> > > Added.
> > >
> > > >
> > > > Regards,
> > > > Peter
> > > >
> > > > [1]
> > > >
> > https://git.buildroot.net/buildroot/tree/package/gstreamer1/gst1-plugins-bad/Config.in#n566
> > > >
> > > > > Regards,
> > > > > Vered
> > > >
> > > > Regards,
> > > Vered
> >
> > Any other ideas?
More information about the buildroot
mailing list