RTSP server is written on C++ and has very good performance.
Our internal tests have shown that when fetching 100 FullHD video streams from the RTSP service, it uses around 7 to 12 % CPU (I7 based machine, 4C/8T, 7th generation) and around 6 to 8 GB RAM. Of course this depends on the particular camera settings like GOP size, FPS, target bitrate etc. In the same case however output bandwidth could easily go from 200 to 500 Mbps (and upper). And you have almost the same as input from the RS.
So usually the Network is the limit here.
What most of our customers are doing is to create multiple VMs on a Xeon based server and install separate instances of the ONB on those VMs. With this separation every instance is responsible for serving for example around 100 streams. For such instance 4 cores and 12 GB of RAM are usually enough. Such scenario introduces some protection in case something happens with one of the instances - not everything is going down. Of course you have to manually distribute the clients in that case.
As absolute hard limitation, RTSP server cannot serve more than 1000 streams (simultaneously). It is hardcoded and cannot be increased. The reason behind this hardcoded limitation is that we were not able to test it further internally and therefore cannot guarantee it is working with bigger load.
As for the audio, if you want to test it, just drop me a mail and we’ll figure it out.
RTSP server of the ONB (Open Network Bridge) supports both of them.
It is up to you to decide what to use.
Using UDP as transport usually allows lower delay as well as better network utilization on the cost of some (eventual) packet (frame) lost.
Using TCP (interleaved mode) as a transport aims for NO data loss, but on the cost of higher network consumption and higher delay.
You should consider which one fits better for your use case. For example if the stream is consumed only to be previewed on screen, you should freely use UDP.
Opposite, if the aim is to feed the media in the Analytic Application (AI, ML, etc) you probably would want to use TCP.
Of course underlying network should also be taken into account. Some corporate networks don’t allow UDP traffic and in that case you will be forced of using UDP.
In general, if there are no specific requirements and the Network’s capacity and quality are enough for the media streams you want to fetch, it should not matter at all.