breakwater icon indicating copy to clipboard operation
breakwater copied to clipboard

NDI output

Open kleinesfilmroellchen opened this issue 8 months ago • 5 comments

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 :)

kleinesfilmroellchen avatar Apr 20 '25 12:04 kleinesfilmroellchen

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 RGBA frames to ffmpeg but many video codecs require frame formats like NV12
  • replace RTMP with SRT for sub second video latency

bits0rcerer avatar Apr 21 '25 17:04 bits0rcerer

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 :)

sbernauer avatar Apr 21 '25 17:04 sbernauer

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.

kleinesfilmroellchen avatar Apr 25 '25 17:04 kleinesfilmroellchen

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?

bits0rcerer avatar May 17 '25 11:05 bits0rcerer

We ran a hardware encoder, but lack of functioning client software had me use VNC anyways (which crashed constantly)

kleinesfilmroellchen avatar May 18 '25 08:05 kleinesfilmroellchen