GstWebRTC - Building GstWebRTC
← |
⌂ Home |
→ |
This page provides a guide to install GstWebRTC.
Dependencies
GstWebRTC has the following dependencies:
- Gstreamer 1.0
- GStreamer 1.0 Development Package
- Gstreamer 1.0 Base Plug-ins Development Package
- Gstreamer 1.0 Bad Plug-ins
- Gstreamer 1.0 Good Plug-ins
- LibSoup Development Package (libsoup2.4-dev)
- JSON-GLib Development Package (libjson-glib-dev)
- OpenSSL Development Package (libssl-dev)
- LibNice Development Package (libnice-dev)
- GTK-Doc Tools (Optional) (gtk-doc-tools)
Make sure you have the following GStreamer elements:
- gst-inspect-1.0 rtpmanager
- gst-inspect-1.0 dtls
- gst-inspect-1.0 nice
- gst-inspect-1.0 srtp
Linux
In Debian based systems, you may install them with the following command:
sudo apt install \ gstreamer1.0-x \ libgstreamer1.0-dev \ libgstreamer-plugins-base1.0-dev \ gstreamer1.0-plugins-bad \ libsoup2.4-dev \ libjson-glib-dev \ libnice-dev \ autoconf \ libtool \ gtk-doc-tools \ libglib2.0-dev \ gstreamer1.0-nice \ libssl-dev \ libreadline-dev \ gstreamer1.0-plugins-ugly \ libsrtp0-dev
Other Dependencies
In Ubuntu 16.04 the following dependencies were also required:
sudo apt install \ faad \ libasound2-dev \ libfaad-dev \ libjack-jackd2-dev \ libmad0-dev \ libogg-dev \ liborc-0.4-dev \ libpulse-dev \ libtheora-dev \ libv4l-dev \ libv4l2rds0 \ libvorbis-dev \ libvpx-dev \ libx264-dev \ libxv-dev \ x11proto-video-dev
Mac OSX
Using MacPorts
sudo port install \ gstreamer1 \ gstreamer1-gst-plugins-base \ gstreamer1-gst-plugins-bad \ gstreamer1-gst-plugins-good \ gstreamer1-gst-plugins-ugly \ json-glib \ autoconf \ libtool \ gtk-doc \ glib2 \ libsoup \ openssl \ readline \ libnice \ libsrtp
Data channel support dependencies
In order to have support for WebRTC data channel you need to build these libraries from the scratch:
- SCTP libraries
git clone https://github.com/sctplab/usrsctp cd usrsctp ./bootstrap ./configure <platform configuration option, see Table 1> make sudo make install cd ..
- GStreamer SCTP elements
git clone https://github.com/EricssonResearch/openwebrtc-gst-plugins cd openwebrtc-gst-plugins ./autogen.sh ./configure <platform configuration option, see Table 1> make sudo make install cd ..
If you get the error 'UINT16_MAX' undeclared while running make, add the library #include <stdint.h> to the openwebrtc-gst-plugins/ext/sctp/sctpassociation.c file.
Install RidgeRun GstWebRTC plugin
Please refer Getting the code page and RidgeRun will provide you the full source version of the plugin path once you place the order.
Checkout the latest tag and run the commands mentioned below:
./autogen.sh <platform configuration option, see Table 1> make sudo make install
System | Configure Option |
---|---|
Ubuntu 64 bits | --prefix /usr/ --libdir /usr/lib/x86_64-linux-gnu/ |
RidgeRun's Embedded FS | --prefix /usr/ |
Tegra TX1/TX2 | --prefix /usr/ --libdir /usr/lib/aarch64-linux-gnu/ |
Mac OSX
Export the PKG_CONFIG_PATH variable to /opt/local/
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig
./autogen.sh --prefix /opt/local/ make sudo make install
Verify
The plugin installation can be verified by running:
gst-inspect-1.0 rrwebrtc
Building Gst-WebRTC on Yocto
RidgeRun offers a Yocto layer containing RidgeRun commonly used packages. You can download this package from https://github.com/RidgeRun/meta-ridgerun.
It contains a recipe to build Gst-WebRTC but you need to purchase GstWebRTC with full source code, from: https://www.ridgerun.com/store/GSTWebRTC-p74337777
Adding meta-ridgerun to your Yocto build
First you need to copy meta-ridgerun in your sources directory:
cp -r meta-ridgerun $YOCTO_DIRECTORY/sources/
Then add the RidgeRun meta layer to your bblayers.conf file. First go to the build configuration directory
cd $YOCTO_DIRECTORY/build/conf/
Open the bblayers.conf file and add the RidgeRun meta layer path $YOCTO_DIRECTORY/sources/meta-ridgerun to BBLAYERS
Building Gst-WebRTC
- Once you have access to the repository, please open gst-webrtc_xxx.bb in $YOCTO_DIRECTORY/sources/meta-ridgerun/recipes-multimedia/gstreamer/
- Modify the following line in SRC_URI with the correct gst-webrtc URL by changing <Customer-Directory> with your own.
git://git@gitlab.com/RidgeRun/orders/<Customer-Directory>/gst-webrtc.git;protocol=ssh;branch=${SRCBRANCH};name=base \
- Make sure you have added your ssh key to your GitLab account. For more information: SSH Information
- Finally build recipe:
bitbake gst-webrtc
SSH Information
The recipe will fetch the repository using your ssh key, thus it's necessary to add the key in Gitlab page.
For adding it, go to Settings->SSH Keys and add your key, if don't have one you can find there a link about how to generate it.
SHH Issue
If GitLab key hasn't added to your list of known hosts on the PC, you will have fetch errors when trying to build Gst-WebTRC recipe.
One easy way to add the key is when cloning the repository for the first time from gitlab, it will ask if you want to add the key to your list of known hosts.
Example:
git clone git@gitlab.com:RidgeRun/orders/<Customer-Directory>/gst-webrtc.git
← |
⌂ Home |
→ |