All Projects → teltek → gst-plugin-ndi

teltek / gst-plugin-ndi

Licence: LGPL-2.1 License
GStreamer NDI Plugin for Linux

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to gst-plugin-ndi

linux-show-player
Linux Show Player - Cue player designed for stage productions
Stars: ✭ 147 (+56.38%)
Mutual labels:  gstreamer
GStreamer-Python
Fetch RTSP Stream using GStreamer in Python and get image in Numpy
Stars: ✭ 81 (-13.83%)
Mutual labels:  gstreamer
Galicaster
The Galicaster Project is an open initiative to provide flexible, state-of-the-art solutions for recording educational multimedia contents like lectures and conferences
Stars: ✭ 34 (-63.83%)
Mutual labels:  gstreamer
photos
Photo viewer and organizer designed for elementary OS
Stars: ✭ 101 (+7.45%)
Mutual labels:  gstreamer
Me-TV
It's TV for me computer.
Stars: ✭ 39 (-58.51%)
Mutual labels:  gstreamer
V4L2-to-NDI
A video input (V4L2) to NDI converter that works with Raspberry Pi (32-bit and 64-bit), and Intel/AMD CPUs
Stars: ✭ 35 (-62.77%)
Mutual labels:  newtek-ndi
surfacecast
SurfaceCast: send background-subtracted depth camera video via GStreamer (with optional perspective correction)
Stars: ✭ 22 (-76.6%)
Mutual labels:  gstreamer
psimedia
Audio/video RTP abstraction library
Stars: ✭ 19 (-79.79%)
Mutual labels:  gstreamer
node-snowmix
A Node.JS library for the Snowmix video mixer
Stars: ✭ 18 (-80.85%)
Mutual labels:  gstreamer
ros-gst-bridge
a bidirectional ros to gstreamer bridge and utilities for dynamic pipelines
Stars: ✭ 46 (-51.06%)
Mutual labels:  gstreamer
gstcefsrc
A simple gstreamer wrapper around Chromium Embedded Framework
Stars: ✭ 46 (-51.06%)
Mutual labels:  gstreamer
reco
A simple audio recording app for modern Linux desktop environment like Pantheon
Stars: ✭ 47 (-50%)
Mutual labels:  gstreamer
mavlink-camera-manager
MAVLink Camera Manager service
Stars: ✭ 19 (-79.79%)
Mutual labels:  gstreamer
gpt
Simple GoPro media organization tool
Stars: ✭ 37 (-60.64%)
Mutual labels:  gstreamer
gst-sync-server
A library for synchronised network playback applications
Stars: ✭ 56 (-40.43%)
Mutual labels:  gstreamer
zed-gstreamer
GStreamer source plugin for ZED Cameras
Stars: ✭ 34 (-63.83%)
Mutual labels:  gstreamer
janus-rtpforward-plugin
Plugin for Janus forwarding RTP and RTCP packets to an external UDP receiver/decoder, e.g. a GStreamer pipeline
Stars: ✭ 69 (-26.6%)
Mutual labels:  gstreamer
docker-nvidia-glx-desktop
MATE Desktop container designed for Kubernetes supporting OpenGL GLX and Vulkan for NVIDIA GPUs with WebRTC and HTML5, providing an open source remote cloud graphics or game streaming platform. Spawns its own fully isolated X Server instead of using the host X server, therefore not requiring /tmp/.X11-unix host sockets or host configuration.
Stars: ✭ 47 (-50%)
Mutual labels:  gstreamer
JDSP4Linux
An audio effect processor for PipeWire and PulseAudio clients
Stars: ✭ 192 (+104.26%)
Mutual labels:  gstreamer
wifibroadcast osd
Mavlink OSD and video player
Stars: ✭ 21 (-77.66%)
Mutual labels:  gstreamer

GStreamer NDI Plugin for Linux

Compiled and tested with NDI SDK 4.0, 4.1 and 5.0

This is a plugin for the GStreamer multimedia framework that allows GStreamer to receive a stream from a NDI source. This plugin has been developed by Teltek and was funded by the University of the Arts London and The University of Manchester.

Currently the plugin has a source element for receiving from NDI sources, a sink element to provide an NDI source and a device provider for discovering NDI sources on the network.

Some examples of how to use these elements from the command line:

# Information about the elements
$ gst-inspect-1.0 ndi
$ gst-inspect-1.0 ndisrc
$ gst-inspect-1.0 ndisink

# Discover all NDI sources on the network
$ gst-device-monitor-1.0 -f Source/Network:application/x-ndi

# Audio/Video source pipeline
$ gst-launch-1.0 ndisrc ndi-name="GC-DEV2 (OBS)" ! ndisrcdemux name=demux   demux.video ! queue ! videoconvert ! autovideosink  demux.audio ! queue ! audioconvert ! autoaudiosink

# Audio/Video sink pipeline
$ gst-launch-1.0 videotestsrc is-live=true ! video/x-raw,format=UYVY ! ndisinkcombiner name=combiner ! ndisink ndi-name="My NDI source"  audiotestsrc is-live=true ! combiner.audio

Feel free to contribute to this project. Some ways you can contribute are:

  • Testing with more hardware and software and reporting bugs
  • Doing pull requests.

Compilation of the NDI element

To compile the NDI element it's necessary to install Rust, the NDI SDK and the following packages for gstreamer:

$ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
      gstreamer1.0-plugins-base

To install the required NDI library there are two options:

  1. Download NDI SDK from NDI website and move the library to the correct location.
  2. Use a deb package made by the community. Thanks to NDI plugin for OBS.

To install Rust, you can follow their documentation: https://www.rust-lang.org/en-US/install.html

Once all requirements are met, you can build the plugin by executing the following command from the project root folder:

cargo build
export GST_PLUGIN_PATH=`pwd`/target/debug
gst-inspect-1.0 ndi

By default GStreamer 1.18 is required, to use an older version. You can build with $ cargo build --no-default-features --features whatever_you_want_to_enable_of_the_above_features

If all went ok, you should see info related to the NDI element. To make the plugin available without using GST_PLUGIN_PATH it's necessary to copy the plugin to the gstreamer plugins folder.

$ cargo build --release
$ sudo install -o root -g root -m 644 target/release/libgstndi.so /usr/lib/x86_64-linux-gnu/gstreamer-1.0/
$ sudo ldconfig
$ gst-inspect-1.0 ndi

More info about GStreamer plugins written in Rust:

https://gitlab.freedesktop.org/gstreamer/gstreamer-rs https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs

License

This plugin is licensed under the LGPL - see the LICENSE file for details

Acknowledgments

  • University of the Arts London and The University of Manchester.
  • Sebastian Dröge (@sdroege).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].