Skip to content

About

The easiest way to stream low-latency content from a GStreamer pipeline straight into browser window.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

GStreamer Browser Sink

The easiest way to stream low-latency content from a GStreamer pipeline straight into browser window.

License

This project is available under the GNU Affero General Public License v3.0-only. Customers who do not wish to use it under the AGPLv3-only license must obtain a commercial license from RidgeRun.

For commercial licensing inquiries, contact support@ridgerun.com.

See LICENSE and LICENSE.RidgeRun for details.

The examples/simple/rrbrowsersink.js helper is derived from Medooze's whip-whep-js and remains licensed under the MIT License. Its complete MIT notice is included in the file.

Building the Project

  1. Install the dependencies. You'll need:
  • GStreamer development files
  • Libsoup development files
  • Libnice development files
  • GStreamer plug-ins (to run the pipeline)
  • Build utilities (meson, ninja, compilers, etc...)

In debian-based systems you can run:

sudo apt install \
  pkg-config \
  libgstreamer1.0-dev \
  libsoup-3.0-dev \
  libnice-dev \
  libssl-dev \
  gstreamer1.0-plugins-base \
  gstreamer1.0-plugins-good \
  gstreamer1.0-plugins-bad \
  gstreamer1.0-plugins-ugly \
  gstreamer1.0-libav \
  gstreamer1.0-nice \
  gstreamer1.0-tools gstreamer1.0-x \
  ninja-build build-essential

Meson needs to be installed via PIP:

sudo -H pip install meson
  1. Build and install the project
meson setup builddir --prefix /usr
meson compile -C builddir
sudo meson install -C builddir
  1. Inspect the element to ensure everything went ok:
gst-inspect-1.0 rrbrowsersink

Running the Project

The simplest way to get started is to check the simple example in examples/simple.

Configuration for maintainers

The project builds by default in release mode. For active development you'll need:

  • clang-tidy (C sanity linters)
  • clang-format (C formatter)
  • pre-commit (Git pre-commit hooks)
  • gitlint (Git message linter)
  • npm (Various node based linters)

In debian-based systems you can run:

sudo apt install clang-tidy clang-format pre-commit gitlint npm

Then configure the project as:

meson setup builddir --prefix /usr -Ddev=true

Build and install the project as usual.

Finally, the following variables are recommended to catch errors at runtime:

G_DEBUG=fatal-warnings GST_TRACERS=leaks GST_DEBUG=2,rrbrowsersink:6,GST_TRACER:7

Documentation

The official documentation is hosted on RidgeRun's Developer Wiki.

RidgeRun GStreamer Browser Sink

About

The easiest way to stream low-latency content from a GStreamer pipeline straight into browser window.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Contributors

Languages