Code Monkey home page Code Monkey logo

raspindi's Introduction

RaspiNDI

RaspiNDI is a simple NDI send library for Raspberry Pi. It was initially developed to allow a streaming setup for a church during the COVID-19 outbreak in 2020.

It uses the NDI library, allowing for auto-discovery of streams on the local network.

Supported boards

This software is tested with Raspberry Pi 3B+ boards. Some users have had success running it on a Rapsberry Pi 4. The Pi Zero W does not have enough memory to run this software

Latency Notes

Raspberry Pi 3b+ = ~600ms
Raspberry Pi 4b (4GB Model Tested) = ~200ms

Getting started

These intructions are for a clean installation of Raspberry Pi OS. All steps are performed on the command line.

tl;dr

  • git clone https://github.com/raspberry-pi-camera/raspindi.git && cd raspindi
  • ./easy-setup.sh
  • /opt/raspindi/raspindi.sh

Step by step

Make sure git is installed.

sudo apt update
sudo apt install git

Clone this repository and cd into it.

git clone https://github.com/raspberry-pi-camera/raspindi.git && cd raspindi

Install compilation dependencies.

sudo apt update
sudo apt install libconfig++-dev cmake libboost-program-options-dev libevent-dev libcamera-dev

Compile.

./build.sh

Install.

sudo ./install.sh

Install runtime dependencies.

sudo apt update
sudo apt install libavahi-client3 libevent-pthreads-2.1-7 libevent-core-2.1-7

Run it. (It does not require root to run.)

/opt/raspindi/raspindi.sh

Open an NDI receiver somewhere on the same network. It should detect the Raspberry Pi camera after a few seconds.

OBS Studio with the OBS-NDI plugin works well.

Changelog

v3.0.0

Changed to using libcamera rather than MMAL directly; MMAL will not be supported in Raspberry Pi OS after the current release

v2.0.2

Upgraded NDI library to v5.0.0

v2.0.1

Added config parameters for various camera settings (AWB, exposure etc.)

v2.0.0

Completely new method of acquiring the images - now calling mmal directly.
This, as well as using YUV colour, drastically improves the speed of the system, and the smoothness of the outputted video.

v1.1.1

Upgraded NDI library to v4.6.2

v1.1.0

Removed OpenCV integration

raspindi's People

Contributors

heathbarpunch avatar miniman13 avatar rf152 avatar rudolfbyker avatar skarard avatar sq3tle avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.