All Projects → windows10luke → V4L2-to-NDI

windows10luke / V4L2-to-NDI

Licence: MIT license
A video input (V4L2) to NDI converter that works with Raspberry Pi (32-bit and 64-bit), and Intel/AMD CPUs

Programming Languages

C++
36643 projects - #6 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to V4L2-to-NDI

filebrowser-docker
🐳 filebrowser inside Docker container
Stars: ✭ 122 (+248.57%)
Mutual labels:  raspberrypi, arm64, armhf
aria2-ariang-docker
🐳 Aria2 downloader and AriaNg webui Docker image based on Alpine Linux
Stars: ✭ 49 (+40%)
Mutual labels:  raspberrypi, arm64, armhf
Pikvm
Open and cheap DIY IP-KVM based on Raspberry Pi
Stars: ✭ 3,950 (+11185.71%)
Mutual labels:  raspberrypi, hdmi
Pi-Pool
Cardano Stakepool on Raspberry Pi
Stars: ✭ 204 (+482.86%)
Mutual labels:  raspberrypi, arm64
alpine-qbittorrent-openvpn
qBittorrent docker container with OpenVPN client running as unprivileged user on alpine linux
Stars: ✭ 230 (+557.14%)
Mutual labels:  arm64, armhf
tor-relay-docker
Tor relay Docker images for x86-64, armhf & arm64 (from source)
Stars: ✭ 32 (-8.57%)
Mutual labels:  arm64, armhf
Raspberrypipkg
DEPRECATED - DO NOT USE | Go here instead ->
Stars: ✭ 758 (+2065.71%)
Mutual labels:  raspberrypi, arm64
gitlab-runner
Gitlab Runner on Alpine Linux [Docker]
Stars: ✭ 17 (-51.43%)
Mutual labels:  arm64, armhf
tiller-multiarch
Helm Tiller images for amd64, arm64, and armhf. ⚓️🎉
Stars: ✭ 80 (+128.57%)
Mutual labels:  arm64, armhf
docker-dns-ad-blocker
A lightweight dnsmasq DNS server to block traffic to known ad servers with optional DNSCrypt support. Supports x86_64 and Raspberry Pi (armhf).
Stars: ✭ 78 (+122.86%)
Mutual labels:  arm64, armhf
tensorflow-serving-arm
TensorFlow Serving ARM - A project for cross-compiling TensorFlow Serving targeting popular ARM cores
Stars: ✭ 75 (+114.29%)
Mutual labels:  arm64, armhf
Raspberry Pi Cross Compilers
Latest GCC Cross Compiler & Native (ARM & ARM64) CI generated precompiled standalone toolchains for all Raspberry Pis. 🍇
Stars: ✭ 261 (+645.71%)
Mutual labels:  raspberrypi, arm64
Deepc
vendor independent deep learning library, compiler and inference framework microcomputers and micro-controllers
Stars: ✭ 260 (+642.86%)
Mutual labels:  raspberrypi, arm64
Debian Pi Aarch64
This is the first 64-bit system in the world to support all Raspberry Pi 64-bit hardware!!! (Include: PI400,4B,3B+,3B,3A+,Zero2W)
Stars: ✭ 2,505 (+7057.14%)
Mutual labels:  raspberrypi, arm64
godot-gameshell
Godot export templates and instructions for the GameShell portable game console and other single-board computers
Stars: ✭ 34 (-2.86%)
Mutual labels:  raspberrypi, armhf
Docker Homebridge
Homebridge Docker. HomeKit support for the impatient using Docker on x86_64, Raspberry Pi (armhf) and ARM64. Includes ffmpeg + libfdk-aac.
Stars: ✭ 1,847 (+5177.14%)
Mutual labels:  arm64, armhf
minio-multiarch
Nightly builds of Minio server Docker images. Compatible with arm64, armhf/armv7, and amd64.
Stars: ✭ 28 (-20%)
Mutual labels:  arm64, armhf
airgeddon deb packages
Useful related to airgeddon packages for Debian based Linux distributions
Stars: ✭ 22 (-37.14%)
Mutual labels:  arm64, armhf
multiarch-letsencrypt-nginx-proxy
nginx-proxy, docker-gen and letsencrypt-nginx-proxy-companion on arm archs
Stars: ✭ 23 (-34.29%)
Mutual labels:  arm64, armhf
alpine-prestashop
Prestashop running on Alpine Linux [Docker]
Stars: ✭ 13 (-62.86%)
Mutual labels:  arm64, armhf

V4L2 to NDI

V4L2 to NDI is an application that connects to attached V4L2 devices and encodes the video signal into NDI

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

Supported devices

This software is tested with Raspberry Pi 4 and Intel Mini PCs. It typically runs well on a dual or quad core CPU that is clocked at or above 1.4 GHz, though results vary. This also works well with the TC358743 HDMI to CSI-2 adapter for Raspberry Pi. This particular HDMI adapter handles an HDMI input up to 1080p30 with no framedrops.

Download required installation files

Make sure git is installed.

sudo apt update -y
sudo apt install git -y

Clone this repository and cd into it.

git clone https://github.com/windows10luke/V4L2-to-NDI.git && cd V4L2-to-NDI

Install on Raspberry Pi OS 64-bit (recommended)

Run this compile and install script

sudo bash ./easy-install-rpi-aarch64.sh

Installation is now complete!

Install on Raspberry Pi OS 32-bit (not recommended)

Run this compile and install script

sudo bash ./easy-install-rpi-armhf.sh

Installation is now complete!

Install on x86_64 bit (Intel/AMD)

Run this compile and install script

sudo bash ./easy-install-x86_64.sh

Installation is now complete!

Usage

Once the installation process is complete, it will create an executable file located at /opt/v4l2ndi/bin/v4l2ndi

The installer also creates a symlink to /usr/bin so that it can be run from a normal terminal.

To see all the available options run the following

v4l2ndi -h

Typically, this app is run with a 30fps input with a pixel format input of YUV2. This command creates the NDI stream for that given input

v4l2ndi -d /dev/video0 -f

In case a 60fps input is needed, this command would be used instead

v4l2ndi -d /dev/video0 -f -n 60000 -e 1001

Usage with TC358743 HDMI to CSI-2 adapter and Raspberry Pi 4

Edit the boot configuration and add the boot overlay for TC358743

sudo nano /boot/config.txt

Add the following line into the boot configuration file:

dtoverlay=tc358743

Run this script to fix EDID on boot (installs fix-edid.service):

sudo bash ./install-edid.sh

By default this service file runs v4l2ndi as the root user with realtime CPU scheduling. Edit the service file with this command before copying it

sudo nano ./v4l2ndi_csi.service

Copy the service and enable it

sudo cp ./v4l2ndi_csi.service /etc/systemd/system/
sudo systemctl enable v4l2ndi_csi.service
sudo reboot

Suggested Hardware

The following latency observations are based on a Raspberry Pi 4 running Raspberry Pi OS 64-bit.

If needing 1080p60, a USB 3.0 HDMI capture interface is required. In this case, I would suggest an Elgato capture card or one that I used made by Hornettek. Latency will be a little higher when using this method compared to the CSI input (about 120ms). Framedrops are also likely when using 1080p60 and the YUYV image format (due to image format conversion).

If only using 1080p30, a HDMI to CSI adapter works good and provides lower latency (about 90ms).

Helpful links

https://wiki.geekworm.com/CSI-2-Software

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].