NDI output
For FSCK2025, we’d like to run breakwater with NDI as output, as it performs better than RTMP with the slight compression it offers. I might implement an NDI output feature based on https://github.com/sp4ghet/ndi-rs , but if anyone has motivation to do it before I get to it, feel free, would be greatly appreciated :)
There seem to be some controversies around NDI and ffmpeg but if you have an ffmpeg version with NDI support, the easiest solution might be adapting the ffmpeg sink to use NDI instead of RTMP. If you are already at it, replacing the h264 software encoding with hardware enncoding (h265, h264, …) might also be a good idea.
In case NDI is not a hard requirement I would suggest using SRT. It works great for low-latency (sub-second) video transmission.
I always wanted to work on the ffmpeg sink but never did … Some ideas:
- hardware video encoding (with cuda on nvidia and libva on intel/amd), since it is often faster and leaves more CPU for pixelflut parsing
- hardware frame conversion (with cuda on nvidia and libva on intel/amd), again leaves more cpu for parsing
- breakwater submits the frames as raw
RGBAframes to ffmpeg but many video codecs require frame formats likeNV12
- breakwater submits the frames as raw
- replace RTMP with SRT for sub second video latency
The ideas sound great to me! Unfortunately I have to admit I'm not very knowledgeable in that field, in fact I never heard of NDI or SRT before. But I'm very happy to review PRs :)
I don’t think I have enough time to do this for FSCK, we’ll be running a different server in all likelihood. But next year I hope I can get it done.
I don’t think I have enough time to do this for FSCK, we’ll be running a different server in all likelihood. But next year I hope I can get it done.
How did FSCK go? Did you managed to get NDI or something similiar working?
We ran a hardware encoder, but lack of functioning client software had me use VNC anyways (which crashed constantly)