Sometimes I see question about what is better: NDI or SRT, or when SRT will kill NDI.
So let me explain who is winner...
NDI (original, not NDI|HX) has two parts under the hood: special codec and transport protocol.
NDI codec was designed for perfect quality for many times encode-decode cycles.
if you take h264 or h265 codec and do 10 decode-->encode cycles then quality will be not so good.
if you take NDI codec and do 10 decode-->encode cycles then quality will be same.
NDI is the first ever codec to provide multi-generational stability. This means that once a video signal is compressed, there is no further loss. As a practical example, generation 2 and generation 1000 of a decode-to-encode sequence would be identical.
* from NewTek (owner of NDI) document
Perfect, we have cool loss-less codec. Let's go to use it through INTERNET !
Sorry, but - NO
NDI has one disappoint - it requires wide network bandwidth.
This table is bandwidth requirements for NDI stream. It's very heavy for Internet connection.
So we have next question:
Why we need multi-generational stability codec which can't use through INTERNET?
Where we can use it ?
Anwser is simple: NDI is perfect for connect many nodes inside LOCALNET.
You can join apps and hosts to long chain without quality degradation. Also you can easy re-configurate your production workflow. All you need - good local-network (it's not problem and not expensive instead SDI communications).
NDI is glue for build production workflow inside Studio.
SRT is pure transport protocol. It does not provide any codec. SRT is codec agnostic.
This protocol uses modern techniques only for one task: low-latency delivery of data (not only video).
For video transmition SRT suggest standart way and all hardware and software SRT encoders use this:
So SRT with h264/265 encoded data applied for one-time sending only, for example from Location to Studio.
I hope you undestand from my explanation: NDI and SRT created for different tasks.
.. oh , if you plan publish finalized result to YouTube, Facebook etc then don't forget about RTMP also.