Nuvoled Application in Java
It captures your screen (or an NDI stream) and sends the rgb values to your P4/P5 LED panels / Video Wall. This is a command line application in java. This exists, because the first party configuration software only works on windows.
Also supports sending video over the network using the Newtek NDI® SDK.
For more information about NDI®, see:
http://NDI.NewTek.com/
- Java 24.0.2 required
- updated java version, because of incompatibility with wayland on ubuntu
- Tested on:
- Windows
- Raspberry PI
- Ubuntu
SeeOS specific settingsfurther below
java -jar nuvolde.jar create <path where you want your default config file>
java -jar nuvoled.jar config <path to config file>
P5 panels can only be configured vertically (use rotation if needed)
java -jar nuvoled.jar <path to config file>
Java Parameter to force IPv4:
-Djava.net.preferIPv4Stack=true
If you use rotation:
- configure your panels resolution in Nuvoled Home AND Nuvoled Presenter as if they were not rotated in reality
- then configure your rotation start parameter (-r)
- if you use a NDI Source: Configure the resolution with the rotation -> like in reality
| rotation degree | P4 normal | P4 Ndi | P5 normal | P5 Ndi |
|---|---|---|---|---|
| 90 | ✅ | ❓ | ✅ | ✅ |
| 180 | ❌ | ❌ | ❌ | ❌ |
| 270 | ✅ | ❓ | ✅ | ✅ |
- Normal ✅
- NDI ✅
- Normal ✅
- NDI ❌
- Normal ✅
- NDI ✅
| Name | Datatype | Description | Default value |
|---|---|---|---|
| PanelVersion | "P4"/"P5" | wich panel do you use P4 or P5 | - |
| PanelCountX | int | number of panels in horizontal direction | 1 |
| PanelCountY | int | number of panels in vertical direction | 1 |
| brightness | [0 - ...] | brightness multiplier. 1 is normal | 0.6 |
| rgb565 | boolean | enables rgb565 mode: less colour accurate, more efficient -> you can have more panels with higher framerate connected | false |
| rotation | 0, 90, 270 | rotates the image 90 or 270 degree -> see Rotation Chapter | 0 |
| sleep | int | how many milliseconds the programm should wait before a new frame is sent. Can improve picture quality on linux systems | 0 |
| offSet | float | (currently not in use) | 0.0 |
| showFps | boolean | shows the fps that are send out, in the terminal | false |
| mode | "screen"/"ndi" | "ndi" enables nid mode | screen |
| artnetEnabled | boolean | enables ArtNet, to control the brightness with one channel | false |
| artnetDebug | boolean | enables debug information for ArtNet | false |
| artnetSubnet | [1 - 16] | sets Subnet | 0 |
| artnetUniversum | [1 - 16] | sets Univers | 0 |
| artnetChannel | [1 - 255] | sets Channel | 0 |
| screenNumber | int | when your machine has more than one screen, you can specify your screen, you want to share | 0 |
| PositionX | int | coordinates where to start the screen capture | 0 |
| PositionY | int | coordinates where to start the screen capture | 0 |
- Add config file
- Testing P4
- Test ArtNet
- add network interface configurations
- rewrite network interface (refactoring old code - remove Mac support)
- add initial configuration for panels
- save currant configured panels to file, so you can load the config for your panels
- add 180 degree rotation
- RGB565 fix array length (should be shorter)
- make NID more configurable
- Network Mapper: sends data over normal Network to a Node; sends it over to the display in udp broadcast
https://ndi.video/for-developers/ndi-sdk/download/
OBS Plugin:
https://github.com/DistroAV/DistroAV
Java Lib:
https://github.com/WalkerKnapp/devolay
NDI Tools:
https://ndi.video/tools/
NDI Doc:
https://docs.ndi.video/all/developing-with-ndi/sdk/frame-types
https://docs.ndi.video/all/using-ndi/ndi-for-video/digital-video-basics
you have to manually configure the network card, to be a self-assigned network (169.254.255.255)
you need to set the sleep
-s 60 to set the delay between two frames
should work out of the box