Hi Zav,
Thanks a lot for your feedback. Very valuable and interesting!
With 16 720p cameras I understand that it is 100% cpu load. If I understand correct with only 13 cams the CPU load is 50-60%? Interesting that adding 3 cams send cpu load to 100%. If that is correct, for me that indicates a bottleneck in the system, decoding or encoding. If you have all 16 cams running in the GUI of NCS X with NO motion detection or recording is the cpu load still at 100%? Or is it when all cams are running with motion detection or recording enabled?
To answer your questions it is no and no. But, here are some suggestions what you can do:
I give you an example what I am doing.
I have a simple computer running NCS. To that computer I have 2 USB cameras connected. On that computer the cameras are recorded continuously since I am mainly interested in the audio. I call this NCS-slave.
I have a server running NCS with 18 cameras in motion detection with VGA to 920p. CPU load is 95%-100%. I call this system NCS-master.
When I connect to NCS-master with windows or web client I want to have all 18+2 cameras. Therefore, i have connected NCS-slave to NCS-master like this How to connect one NCS server with another NCS server
Positive is that now I have all cameras live in only one GUI. Negative is that searching the Library I only have the 18 cameras connected to NCS-master. For Library from the USB cameras I must connect to NCS-slave.
Depending on your application you can also do this. In NCS there is an HTML generator that generates html code that can be embedded in a web page. If you have access to a web server you can make a web page for all 16 cameras. This will of cause only be for live viewing.
I have been discussing to do something that I call NCS Central for larger surveillance application. Here we can connect many NCS-computers to a central that collects all information that can be managed in one software. If that is possible I am not sure, but it is probably a lot of development and NCS will be in another market segment with another price structure. So far we have focused on NCS to be more efficient and with a better GUI to that price.
For computers or mainly processors. the i5-7400 has 4 cores/4 threads which is the reason for the high cpu load. In a system I have a Xeon e2-1220v3 which corresponds to an i5-7400 and I experience the same behaviour.
One high-end processor compared to two slower processors. That is of cause possible, but then we are back to the discussion above on how to merge the two NCS systems.
Which processor generation? High cpu speed, many cores, many threads, …
Lately I have been looking into another solution. This application involves a lot of decoding and encoding of video signals compressed in h.264 or now also in h.265. This type of video processing use mainly the ffmpeg codec and utilize massive parallel processing and therefore works best with processors with many cores and many threads. What I can see from all information is that many cores/threads are more important than a high clock frequency. If there is a processor with 4 cores it is important to know that virtualization do not end up in 8 real cores. It is 4 cores and 4 virtual processors. However, for this application that seems not being a problem.
Today it is possible to buy used computers to very reasonable prices. I am looking at high-end server systems that have xeon processors with many cores and many threads or even multiple processors. These processors are not running on the highest cpu frequency, but they have many cores/threads and also ECC which I like for stability. I have not done this yet since the actual system is in another part of the world where I am for the moment, but within a couple of months I will be on the same place
To come back to your last question about the significance of the generation i7 processor. From my discussion above it is cores and threads that are more important than cpu speed so an older generation would be no problems as I see it.
-Henrik