Something isn't right.
Something isn't right.
Post the BI status page that shows the info below including the totals and sub info
View attachment 232340![]()
Something isn't right.
Something isn't right.
Post the BI status page that shows the info below including the totals and sub info
View attachment 232340![]()
Your machine is overkill powerful for Blue Iris, so there's just definitely something goofy we haven't yet nailed down here. I'd expect CPU usage to be in the ballpark of 10% (higher with remote viewing sessions active). Not 80%+.
Lets make sure you got hardware acceleration turned off properly. Go to the camera status window (the one you exported to PDF for us in the original post). In the "HA" column of the status table, you had a lot of "I" and a few "N", meaning Intel and Nvidia hardware decoding were in use. Make sure those are all showing "-" now meaning no hardware acceleration. Blue Iris's hardware acceleration is pretty buggy and not really worth the risks anymore when you're using low res sub streams with all your cameras (which you are).
"Limit decoding unless required" is a feature that makes Blue Iris only decode i-frames unless the camera is maximized. It used to be quite valuable in the years before sub streams were available to use in Blue Iris. But now it is not generally recommended anymore because it comes with penalties for BI's motion detection performance and live viewing performance. Your system should be fast enough that you absolutely do not need this feature.
I notice from your camera status export that you do not have matching frame rates and i-frame intervals in a lot of cases between main and sub streams. This should not affect CPU usage in a significant way, but later when you get this CPU usage issue resolved, I recommend checking out the sub stream guide I wrote. In particular you should have the frame rates of main streams and sub streams set to the same value. It can also be beneficial to match up their i-frame intervals with their frame rates but this is less important.
One thing I have not seen recommended yet is:
Check your CPU temperature.
If it is overheating and thermal throttling due to bad CPU cooler contact or dead CPU fan or something, that could explain why the CPU usage is drastically higher than expected.
This program should show you the temperature and the clock speed per core.
The i9-12900K should be running 2400-3900 MHz on the 8 efficiency cores and 3200-5200 MHz on the 8 performance cores and the temperature should probably be more than 5 degrees below the "Tj. Max" value shown in the program.
Is there any advantage or disadvantage of using H265 or H265+ instead of H264?
All temps remained around 23c-26c so the CPU heat is not an issue.Your machine is overkill powerful for Blue Iris, so there's just definitely something goofy we haven't yet nailed down here. I'd expect CPU usage to be in the ballpark of 10% (higher with remote viewing sessions active). Not 80%+.
Lets make sure you got hardware acceleration turned off properly. Go to the camera status window (the one you exported to PDF for us in the original post). In the "HA" column of the status table, you had a lot of "I" and a few "N", meaning Intel and Nvidia hardware decoding were in use. Make sure those are all showing "-" now meaning no hardware acceleration. Blue Iris's hardware acceleration is pretty buggy and not really worth the risks anymore when you're using low res sub streams with all your cameras (which you are).
"Limit decoding unless required" is a feature that makes Blue Iris only decode i-frames unless the camera is maximized. It used to be quite valuable in the years before sub streams were available to use in Blue Iris. But now it is not generally recommended anymore because it comes with penalties for BI's motion detection performance and live viewing performance. Your system should be fast enough that you absolutely do not need this feature.
I notice from your camera status export that you do not have matching frame rates and i-frame intervals in a lot of cases between main and sub streams. This should not affect CPU usage in a significant way, but later when you get this CPU usage issue resolved, I recommend checking out the sub stream guide I wrote. In particular you should have the frame rates of main streams and sub streams set to the same value. It can also be beneficial to match up their i-frame intervals with their frame rates but this is less important.
One thing I have not seen recommended yet is:
Check your CPU temperature.
If it is overheating and thermal throttling due to bad CPU cooler contact or dead CPU fan or something, that could explain why the CPU usage is drastically higher than expected.
This program should show you the temperature and the clock speed per core.
The i9-12900K should be running 2400-3900 MHz on the 8 efficiency cores and 3200-5200 MHz on the 8 performance cores and the temperature should probably be more than 5 degrees below the "Tj. Max" value shown in the program.

I have split the cameras up to record to different drives. For example first 10 cameras record to d:\Storage, next 10 record to e:\storage, and so on. I don't move any files aroundThat is certainly a head scratcher.
Are you moving files around on the drives or are the video files only being recorded to the equivalent NEW folder and deleted based on days/storage and not being moved to an equivalent STORED folder?
Something isn't right.
Post the BI status page that shows the info below including the totals and sub info
We have about 5 clients connected to this, I just did a test and closed down all web clients and the cpu went to 5%-10%!!Can you revisit the request from @wittaj?
The picture you actually posted in response to this was missing the totals, which makes it hard for us to judge whether sub streams were actually working or not.
We have about 5 clients connected to this, I just did a test and closed down all web clients and the cpu went to 5%-10%!!
What would cause the webserver clients to make the server cpu spike up? How can I reduce this?


Several things.
First, look at your BI Settings > Web server > Advanced, click the Configure button next to Streaming 0, and share a screenshot of that panel so I can make sure you didn't do anything weird in the encoder configuration. You wouldn't believe the things people do in there sometimes
Then to reduce the CPU usage, it depends on what specific activities are causing the high usage.
If it is mostly single camera live viewing (which would surprise me honestly) then you can reduce the CPU cost by using H.264 (not H.265) on the cameras and enabling direct-to-wire in the Streaming 0 configuration.
If people are viewing camera groups and that is the main cause of the high CPU, then it is very important that you have sub streams working correctly so the rescaling is cheaper. (see the earlier requests for the camera status screenshot showing the totals). The more cameras you have, the more it costs to encode group video streams, and you have a lot of cameras.
Make sure your recording settings are recording the sub stream along with the main stream, otherwise Timeline playback is crazy CPU intensive.
To reduce CPU cost associated with creating group video streams:
1. Limit the frame rate of the groups.
This is in the group configuration panel in Blue Iris's local console. Select a group and click the gear icon next to it:
View attachment 232454
View attachment 232455
Do this for each group. The lower the frame rate you can get away with here, the better. 5 FPS looks kind of crappy but it is 1/6th the CPU usage compared to 30 FPS.
2. Limit the group resolution in UI3
Right click the group video in UI3 and choose Group Settings. Inside is a slider for the max resolution of dynamic groups. Higher values here STRONGLY affect server CPU usage. I don't get a lot of concurrent remote viewers on my system so I can get away with 9 MP and 30 FPS. You probably can't.
(UI3's settings are stored locally in the browser where you edit them; make the same change on all UI3 clients as needed)
View attachment 232456
If your groups have a fixed aspect ratio assigned in Blue Iris's layout editor, then you can also limit the max resolution of those groups in Blue Iris's layout editor.



So in video record settings for each camera, I need to make sure the "Record dual-streams if available" is ON?

Yes. it is the default setting so if you never changed it, it should still be on.
The 120 FPS max assigned to group streams is probably a HUGE part of your CPU problem. Holy cow. Fix that for sure. You have basically no reason to set it higher than your highest camera. I'd never set it higher than 30. Consider even 15 FPS if 30 does not yield enough CPU savings.
Don't forget to set max FPS for all of your camera groups, not just the All cameras group.
Also, yes, your Streaming 0 configuration has all kinds of bad settings.
The max kbps of 50 is very, very low and will result in bad image quality in Blue Iris's mobile apps (which don't override the bit rate the way UI3 does).
Keyframe interval should be set to 1000 for optimal performance. 15 means BI has to send a LOT more i-frames and this is really bad for encoder efficiency.
The threads setting can also be left at its default value of 1. I don't think it has ever actually worked.
Same with Intel QSV hardware encoding. I don't think that has ever worked either. It might work now after Blue Iris's recent refactoring, but I seriously doubt it. Fortunately BI just silently falls back to software encoding when hardware encoding doesn't work.
Here are my recommended Streaming 0 encoder settings for comparison:
View attachment 232460
(the Resize output frame option is largely meaningless for UI3 so I just leave it at default for consistency; UI3 always specifies the resolution it wants in each video request)