GstNetBalancer - Building and installation guide
GstNetBalancer A GStreamer Network Balancer Element |
---|
About NetBalancer Plugin |
Getting Started |
User Guide |
Examples |
Contact Us |
Dependencies
The GstNetBalancer plugin has the following dependencies:
GStreamer
The GStreamer packages are likely already installed in your Ubuntu OS distribution. In case you want to double-check and install the missing packages, run the following commands.
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-bad
Meson
The GstNetBalancer plugin makes use of the Meson build system. To build correctly this plugin you need to use the latest version of Meson:
First, make sure python dependencies and ninja are installed
sudo apt install python3 python3-pip python3-setuptools python3-wheel ninja-build
Then, use pip3 to install Meson.
sudo -H pip3 install meson
Building the project
To build the GstNetBalancer plugin natively on the hardware, on its simplest form, run:
meson build --prefix /usr/ ninja -C build sudo ninja -C build install
Check the element
After installing the plugin test that the plugin is being properly picked up by GStreamer by running:
gst-inspect-1.0 netbalancer
with expected output:
Factory Details: Rank none (0) Long-name Network traffic balancer Klass Filter/Network Description Balance network packages to respect bandwidth over time Author Melissa Montero <melissa.montero@ridgerun.com> Plugin Details: Name netbalancer Description Distribute network packages over time Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstnetbalancer.so Version 0.1.0 License Proprietary Source module gst-net-balancer Binary package gst-net-balancer source release Origin URL www.ridgerun.com GObject +----GInitiallyUnowned +----GstObject +----GstElement +----GstBaseTransform +----GstNetBalancer Pad Templates: SINK template: 'sink' Availability: Always Capabilities: ANY SRC template: 'src' Availability: Always Capabilities: ANY Element has no clocking capabilities. Element has no URI handling capabilities. Pads: SINK: 'sink' Pad Template: 'sink' SRC: 'src' Pad Template: 'src' Element Properties: name : The name of the object flags: readable, writable String. Default: "netbalancer0" parent : The parent of the object flags: readable, writable Object of type "GstObject" qos : Handle Quality-of-Service events flags: readable, writable Boolean. Default: false bandwidth : Bandwidth in kbps to distribute over time flags: readable, writable Unsigned Integer64. Range: 0 - 9223372036854775807 Default: 2500 distribution-factor : Number of intervals in which you are going to divide the secondand the bandwidth to distribute it flags: readable, writable Unsigned Integer. Range: 1 - 4294967295 Default: 50 min-delay : Microseconds to wait between packets flags: readable, writable Unsigned Integer. Range: 0 - 4294967295 Default: 0
Example Pipelines
Please refer to the Examples page for reference pipelines.
Troubleshooting
The first level of debug to troubleshoot a failing evaluation binary is to inspect GStreamer debug output.
GST_DEBUG=2 gst-launch-1.0
If the output doesn't help you figure out the problem, please contact support@ridgerun.com with the output of the GStreamer debug and any additional information you consider useful.
RidgeRun also offers professional support hours that you can invest in any embedded Linux-related task you want to assign to RidgeRun, such as hardware bring-up tasks, application development, GStreamer pipeline fine-tuning, drivers, etc.