Difference between revisions of "GstWebRTC - Building GstWebRTC"

From RidgeRun Developer Connection
Jump to: navigation, search
Line 192: Line 192:
  
 
*Once you have access to the repository, please open gst-webrtc_1.8.1.bb in '''$YOCTO_DIRECTORY/sources/meta-ridgerun/recipes-multimedia/gstreamer/'''
 
*Once you have access to the repository, please open gst-webrtc_1.8.1.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.
+
*Modify the following line in SRC_URI with the correct gst-webrtc URL by changing '''<Customer-Directory>''' with your own.
  
 
<syntaxhighlight lang='bash'>
 
<syntaxhighlight lang='bash'>
Line 198: Line 198:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
*Make sure you have added your ssh key to your GitLab account. For more information: [[SSH information]]
+
*Make sure you have added your ssh key to your GitLab account. For more information: [[#SSH Information|SSH Information]]
  
 
*Finally build recipe:
 
*Finally build recipe:
Line 214: Line 214:
 
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.<br>
 
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.<br>
  
'''Example:'''
+
Example:
 
<syntaxhighlight lang='bash'>
 
<syntaxhighlight lang='bash'>
 
git clone git@gitlab.com:RidgeRun/orders/<Customer-Directory>/gst-webrtc.git
 
git clone git@gitlab.com:RidgeRun/orders/<Customer-Directory>/gst-webrtc.git

Revision as of 12:53, 7 March 2018


Getting the code


Home

Examples



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 rtp-manager
  • gst-inspect dtls
  • gst-inspect nice
  • gst-inspect 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 ..

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/
Table 1. Platform configuration options

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 webrtc

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_1.8.1.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




Getting the code


Home

Examples