Blue Iris: Decrease CPU Use

This post was created when I was using Blue Iris version 4, but may work with version 5.

I love Blue Iris surveillance software, but it can be a major CPU hog if not tweaked. You can really reduce CPU use by utilizing a graphics card (GPU). For example, I am using a Quadro P200, which I purchased on Amazon for $429 in October 2018. I am running Blue Iris on a custom built computer with an Intel i7-8700K CPU, 48GB of 3000MHz DDR4 RAM, with Windows 10 64-bit installed on a 250GB Samsung 970 EVO NVMe SSD. Surveillance video is saved to two 3TB Western Digital Red drives in RAID 0.

This computer is reasonably fast, but when I first installed Blue Iris CPU usage was very high (around 25%). I had twelve cameras, but I knew CPU use should not be that high. I did some tweaking and got Blue Iris CPU use down to around 2% when not viewed remotely in a web browser. Viewing Blue Iris on other devices where transcoding is required will increase CPU and GPU use. My CPU jumps to around 28% and my GPU to around 48% when remotely viewing my cameras on a web browser. When just viewing Blue Iris with the GUI, my GPU use is around 8%.

Let’s Tweak Some Settings

Go to Blue Iris Options (sprocket icon in upper left of the main window) and select the Cameras tab. Go to the Hardware accelerated decode option and select your GPU and then OK.

2019-05-04 10_59_45-Blue Iris Options

Now we must change the settings of each camera. I wish there was an option to make this a universal change across all cameras.

In the Blue Iris GUI, right-click on a camera and select “Camera properties…”, go the “Video” tab and select your GPU from “Hardware accelerated decode,” check the option for “Limit decoding unless required,” and make sure “Enable overlays” is not checked. This last option will not show the date and time on live viewing or in recordings. You can turn on the date and time on each camera, but this may be troublesome. A few of my cameras do not keep accurate time, even though they are set to update their time from an NTP server on the network. Make sure anything else I outlined in red is the same on your system and select “OK.”

2019-05-04 11_17_33-High View

NOTE: Limit decoding on my system made a big difference. My CPU usage went from 10% to 2.5% and my GPU from 20% to 3%.

Now, go to the “Record” tab and make sure the “Pre-trigger video buffer” is off unless you really need it. Also select “Video file format and compression…” to open another window.

2019-05-04 11_18_05-High View

Make sure “Direct-to-disc” is selected. I don’t know if it makes a difference with CPU usage, but I have always used “Blue Iris DVR” (BVR) as the file container. Select OK when you’ve made the desired changes.

2019-05-04 11_18_23-High View

Please leave a comment below if you have some Blue Iris tweaks or have an issue with what I have recommended.

UPDATE 12/23/2020

I moved to Blue Iris v5 and GPU use was high, even with the settings outlined in this post. I discovered that using sub streams for viewing all cameras in the GUI greatly reduced my GPU use.

2 comments

  1. Squirrel · · Reply

    About a week ago I posted all the same tips on reddit /r/blueiris. This is all VERY GOOD information.

    Couple things I would add.

    What is your CPU\GPU usage with limit decode off?

    What is your data rate and MP/s in the BI status window? Without this info your CPU usage numbers are moot.

    What is your system power consumption when recording and not viewing?

    Limit decoding only uses key frames to make motion decetions. If it’s off, it decodes every frame of the video to check for motion events. Disable it if you can. I don’t, but I don’t have a video card either.

    Prerecord buffer. This is useful if you are using limit decode. With limit decoding on, I will get 1-2 second delay in motion events. The event is triggered only when the key frame comparison is done. By setting a Prerecord buffer of 3-5 seconds , I catch 3-5 seconds before the event. Totally compensating for the limit decode lag. I don’t feel that Prerecord taxes the system very much.

    Very nice ssytem. I feel it’s severely overvbuilt but also see you are running plex. I have my BI on a Xeon 1u server and my plex./unraid on a 2u server myself. Don’t mix business with pleasure!

    Find me on reddit – user squirrelslikenuts

    Like

  2. SillyKing · · Reply

    Thank you for these tips! I have a 9 camera setup on an almost identical hardware (32Gb RAM and no dedicated card, just the Intel integrated GPU). I have 5 4K cameras and 4 1080P. Found if I trued to use GPU acceleration the 1080P cameras went offline. Went from 60-90% CPU utilization to around 15%. Thank you Squirrel for your description as well. I do have an issue where I can view the cameras fine on a phone and on the BlueIris server, but on a web browser on same LAN there is significant lag.

    I also use the BlueIris server as a UniFi controller, PLEX server, and web browser to streaming site for the attached TV.

    SillyKing

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: