New Blue Iris Setup - Plenty of compute power, but poor performance.

eptesicus

n3wb
Nov 30, 2015
15
1
I recently installed a dual Intel E5-2620 2.0 GHz CPU (24 threads/vCPUs total) and 32GB RAM server at my parents house. The server also has 4x WD purple drives in RAID 5 and is running ESXi 6.7 with a Windows Server 2019 VM for the latest version of Blue Iris. All 24 vCPUs and 16GB of RAM are allotted to the Blue Iris VM.

With the server, they have a 24-port Cisco SG200 POE switch in the house for the 6 cameras there and one AP, and a fiber connection running to the pole barn to an 8/10-port SG200 POE switch for 7 cameras and another AP. Connectivity appears to be more than fine on the network, and the cameras shouldn't have any issues recording to the server. The VM's OS drive is stored on the host's 256GB SSD, and the camera data is writing to a datastore that's stored on the RAID array of the Purple drives.

The 13 Hikvision cameras:
  • House
    • 2x DS-2CD2642FWD-IZS
    • 1x DS-2CD4232FWD-IZH8
    • 3x DS-2CD2042WD-I
  • Pole Barn
    • 6x DS-2CD2042WD-I
    • 1x DS-2CD2642FWD-IZS
All of the cameras are on the latest firmware, and they're all set now to 1080p/30FPS.

The problem that I'm having with the 13 cameras in Blue Iris, is that when they're all enabled, the recordings are incredibly glitchy and they aren't recording 30 FPS. In fact, I believe they're recording far less. When a camera is triggered and starts recording (with 5-sec pre-trigger video buffer), nothing may change on the recording, or a car will be in frame and then will completely vanish, or the recording itself will actually start recording several seconds AFTER the trigger from motion... and even then, it's still choppy/glitchy. The time-stamp on the recording makes it look as there wasn't any sort of delay (now that I've enabled direct-to-disk though, there aren't any timestamps on the recording).

My settings for each camera:

Notice the frame rate...
KqAIfbS.png


1xE4d07.png


58qqW51.png


0t37SGU.png


TdYd7Zt.png


KE6MmZ4.png


ly3xrAQ.png


RE9qHgu.png


XJnevE4.png


PtmHq4w.png


CJ5TOnp.png


gTqcmUX.png


U34UvWq.png


7uHYqIF.png



I have an old GTX 650 graphics card that I'm tempted to throw in the server to see if they can help... however, the CPU isn't pegged. On average, the CPU usage in the Blue Iris VM is reading at 60% with only 4-6 GB of RAM used. I'm at a loss as to why it's behaving this way. I'm starting to enable continuous recording to at least try to get everything, but it still appears to be recording glitchy activity.

Edit: Added some data from Resource Monitor:
upload_2019-2-7_13-7-17.png
 
Last edited:
In Blue Iris, if you hit the "graph icon" on the big toolbar at the top and then look at the Cameras tab, at the very bottom, what are the totals?

My 10 camera system is pushing around 7096 kB/S 460.5 MP/s, but I have them mostly configured at 15 FPS.
 
  • Like
Reactions: eptesicus
In Blue Iris, if you hit the "graph icon" on the big toolbar at the top and then look at the Cameras tab, at the very bottom, what are the totals?

My 10 camera system is pushing around 7096 kB/S 460.5 MP/s, but I have them mostly configured at 15 FPS.

upload_2019-2-7_13-9-12.png

This number goes anywhere from 50 MP/s to 110 MP/s, so much lower than yours.
 
You are not shooting a hollywood movie. Set cameras to no more than 15 fps, set Iframe to 15.
 
Hi - I was about to start my own thread as I am thinking of picking up a Dell R720 using Esxi - same sort of thing you were planning but mine would have less threads. Just curious how you end up in this. Not sure if the Dual CPU route will help.
 
Hi - I was about to start my own thread as I am thinking of picking up a Dell R720 using Esxi - same sort of thing you were planning but mine would have less threads. Just curious how you end up in this. Not sure if the Dual CPU route will help.

I would have thought more cores would help, but I imagine a higher clock speed would be more beneficial. I suppose if you're looking for a Dell R*20 server, a single CPU (like a R320 or so) with a higher clocked E5 should be fine. Otherwise, I wonder if an i7 system would be better?
 
What CPU are you using, I can not seem to find an intel reference for E5-26020?
What is the network configuration of the router, SG200-26 switch and the BI PC.
The camera traffic should never go through the router.

The object is to get it working.

More on the cameras setting.:

Bit type rate: variable
encoding: H.264
H.264+: off
maxbit rate: 4096
quality: Medium
SVC: off

Your bit rate is very high for such a low FPS.

Note: using a VM is not a good idea, as Hardware video acceleration does not work well if at all.

Read the Wiki in the blue bar at the top of the page. There is a section on performance.

Blue iris works best on a total dedicated system.
 
"All of the cameras are on the latest firmware, and they're all set now to 1080p/30FPS."

are you using H.265 or H.264+ encoding on the cams? BI struggles with those 'fancier' encodings, in my experience.
Stick to straight-up h.264 if not already...

on that CPU (and using VM!), you are unable to take advantage of BI's hardware acceleration features.
BI really runs best on 'bare metal supporting Intel quic-sync hardware acceleration.
adding a graphic card won't help (except to offload console display processing, but that's not your problem).

lower frame rates (set in each cam's UI) may help somewhat.
As-is, the cams are squeezing 2MP @ 30fps into a ~200kB/s stream.
try 10fps (with i-frame interval of 10 for 1 every second,) maybe 12 or 15fps if you have the headroom at 10...
 
  • Like
Reactions: aristobrat
I was also thinking the lack of hardware acceleration is probably having a negative impact here.

I see "Direct to disc" enabled, which is good... this lets BI write the native camera stream to the disks without having to re-encode it. But AFAIK if you have motion detection setup, BI still has to decode the stream coming from the camera to "see" what's going on (i.e. detect motion). BI can use Intel Quick Sync to offload that decoding to the GPU, but it doesn't look like this Xeon processor supports Quick Sync. Even when the processors support it, most folks can't get it to work in a VM (like @SouthernYankee and @pozello's comments). BI can also use Nvidia CUDA for hardware acceleration, but from reading threads here, it doesn't seem as efficient as Quick Sync, and I'm not sure if it'll work in a VM either. So that that sense, an i7 may be better.
 
It would def. try lowering the FPS on the cameras... be sure to do it directly on the cameras, and not within BI. If you drop to 15 FPS (which is what most folks here use -- it's still 15 individual images being taken every second), you'll cut the load going into Blue Iris by 50%.
 
"Your bit rate is very high for such a low FPS."

the fps processed by BI is very LOW compared to what it SHOULD be able to decode from a ~200Kb/s stream.

which is what leads to me think the issue is the encoding format at the cameras.

compare config in camera 192.168.1.122 (House - Driveway) to the others, as it's the only one running close to 'normal' ~10fps...
 
What CPU are you using, I can not seem to find an intel reference for E5-26020?
What is the network configuration of the router, SG200-26 switch and the BI PC.
The camera traffic should never go through the router.

The object is to get it working.

More on the cameras setting.:

Bit type rate: variable
encoding: H.264
H.264+: off
maxbit rate: 4096
quality: Medium
SVC: off

Your bit rate is very high for such a low FPS.

Note: using a VM is not a good idea, as Hardware video acceleration does not work well if at all.

Read the Wiki in the blue bar at the top of the page. There is a section on performance.

Blue iris works best on a total dedicated system.

The CPU was a typo and it's been corrected. The server has 2 E5-2620 CPUs.

The network is a flat /24 subnet, so no need for the traffic to go through the gateway.

I ended up configuring the cameras as per your recommendations, and I'll continue to monitor and see if performance improves. I don't particularly agree that this setup can't be virtualized. There's plenty of compute power that it shouldn't be any issue. I've seen multiple threads with virtualized setups that are performing with no I'll effects. The only thing I see with my hardware that could pose a problem is my CPUs as they're running at slower clock speeds, albeit with a lot of cores.
 
What does the video look like when you stream one of the cameras from the configuration page of the camera (on the server)? Do moving objects track ok? It seems the network should have the power, but maybe there is a network issue somewhere in there.
 
Looks like setting the FPS of all the cameras got me where I need to be. Surprisingly, Blue Iris now only takes 5% CPU and 3 GB of RAM. I hope at some point I can increase the FPS, but this will work for now.
 
  • Like
Reactions: SouthernYankee
eptesicus

You are over estimating your CPU power. You are running a VM. I believe that your xeon processors does not support quick sync.

There are much better I7 processors than this setup, there is a lot more to video processing than CPU power,

Look here for comparisons for BI processors.
 
OK you got it working.

Let it run for a few days and verify that you are getting the desired results for motion detection, alerts and video play back.

Also I would re think the use of a Raid on a video system. It is much better to have multiple disks with the cameras spread out on different disks. So a single drive failure does not affect all your camera recording.
There are much better setups for video recording and redundancy.