Optimizing Blue Iris's CPU Usage

  • Views Views: 101,540
  • Last updated Last updated:
  • Introduction

    Blue Iris uses a lot of CPU time. In most Blue Iris installations, your CPU is the limiting factor which determines how many cameras you can have. As such, it is extremely important to optimize several settings to ensure you can get the most out of your system, while consuming the least amount of electricity.

    Essential Optimizations

    These optimizations are recommended for all Blue Iris systems, because their benefit is very significant.

    Direct-to-disc recording

    The Direct-to-disc feature allows Blue Iris to record video directly to the hard drive without re-encoding it. Re-encoding video is extremely CPU-intensive, often wastes disk space, and should be avoided at all costs. Direct-to-disc recording is perhaps the most important optimization you can make.

    This setting is configured individually for each camera in Blue Iris and as of Blue Iris 5 this setting is now profile-specific so if you set it for only one profile, it won't be set for any of the other profiles.

    Right click a camera and choose "Camera properties...". On the Record tab, click "Video file format and compression...". Choose the Direct-to-disc option.

    Record-Video-file-format.png Direct-to-disk.png

    When you use Direct-to-disc, it is strongly-recommended to also have the camera embed its own timestamp into the video stream (otherwise the timestamp will not appear in a recording until you export it).

    * Note: Direct-to-disc does not work with the Blue Iris demo. A paid license is required.

    Hardware accelerated decoding

    If your CPU supports Intel® Quick Sync Video, then you can use hardware acceleration in Blue Iris to reduce CPU and energy usage significantly with any camera streaming H.264. If your Intel CPU is 6th-generation (such as i5-6500) or newer, then you can use hardware acceleration for H.265 streams as well since around mid-April 2020 (beginning Blue Iris 5.2.5 or so).

    Open Blue Iris Settings, then on the Cameras tab, find Hardware accelerated decode (restart). If running Blue Iris newer than 5.2.5, you may choose "Intel®+VideoPostProc". Otherwise, "Intel®" will probably perform better. Restart Blue Iris for this change to take effect. If you are running Blue Iris as a service, you will need to restart the service, or just restart the entire computer.


    You may also override the global hardware decoding option for individual cameras on the Video tab of Camera Properties. A full app restart is not required when you change individual cameras.

    On Windows 10 Version 1709+, you can easily verify that hardware acceleration is working. Just look in Task Manager on the Processes tab, and you should see a GPU column with a non-zero % load, and the GPU Engine column should read "GPU X - Video Decode". In Windows 10 Version 1803+, the Performance tab also provides graphs.

    On Windows 7, hardware acceleration does not work if you run Blue Iris in service mode.

    Notes about Intel®

    Intel hardware acceleration provides substantial savings in both CPU time and power consumption, and is highly recommended if Quick Sync Video is supported by your hardware.

    Check Task Manager > Performance tab. If the Intel graphics device shows usage on the Video Decode graph, then it is working, at least for some cameras. If the Intel graphics device does not appear, you may need to enable the Intel GPU in your BIOS.

    Notes about Nvidia® CUDA®

    Supported in Blue Iris 4.7.8+ (August 28, 2018)

    Nvidia® CUDA® hardware acceleration reduces CPU usage similar to Intel® Quick Sync Video, and is available if you have an Nvidia GPU capable of NVDEC (see Video Encode and Decode GPU Support Matrix). Newer and faster GPUs can handle more video than older or slower GPUs.

    WARNING: Nvidia hardware acceleration is actually very inefficient, resulting in much higher power consumption (increases long-term cost and heat output) and higher memory usage. Considering the relatively high purchase price and ongoing expense of using Nvidia hardware, it is a poor choice for most Blue Iris systems.

    Camera frame rates - 15 FPS

    Most cameras have a default frame rate around 25 or 30 FPS. In most situations, this is a lot more than you need. Each frame requires CPU time to process, so the lower the frame rates, the better.

    This setting is configured individually for each camera in the camera's web interface. It is recommended to use frame rates of 15 FPS or lower, as beyond about 15 FPS there is little meaningful improvement in video smoothness compared to the additional processing costs.

    Also set Blue Iris's "Max. rate" option in camera properties on the Video tab to your camera's actual streaming frame rate, or just barely above. This max rate setting is supposed to auto-adjust itself upward as necessary, but higher values of this setting directly impact your server's memory usage in a huge way, so don't let it be much higher than the camera's true frame rate.

    Use Sub Streams

    Blue Iris 5.2.7 introduced support for sub streams. This feature is in its early stages, but the potential for performance gain is massive. This section will be expanded as the feature matures.


    Other Optimizations


    In case you need to reduce Blue Iris's CPU usage further, there are some other things you can do.

    Run as a service

    When Blue Iris is configured to run as a Windows service, Blue Iris will start automatically with the PC, remain running when the graphical user interface (GUI) is closed, and automatically recover from most crashes. While the GUI is closed, CPU usage is reduced.


    * NOTE: Hardware acceleration does not work on Windows 7 when running Blue Iris as a service.

    Live preview frame rate

    Blue Iris can take quite a lot of CPU time to draw live video to the screen through the local GUI, particularly if you have a high resolution monitor. There is an option to limit this frame rate, and therefore reduce CPU usage while the GUI is open. Open Blue Iris Settings, then on the Cameras tab, enable the "Limit live preview rate" setting and assign a fairly low number for the rate limit. This does not affect recordings, so consider even setting the limit to 1 FPS.

    Live preview FPS.png

    Video scaling

    Blue Iris has 3 video scaling modes: "Fast", "Bilinear", and "Bicubic". "Fast" uses the least amount of CPU, and is strongly recommended unless you cannot tolerate the jagged artifacts it creates in live streams in the Blue Iris local console. This setting becomes especially important if you have a large system, where the CPU usage difference can be dramatic.

    This option is found in Blue Iris Settings on the Other tab.


    Text and Graphic Overlays

    By default, Blue Iris overlays a timestamp on each camera. Assuming you have the camera embedding its own timestamp, you can save a small amount of CPU time by disabling Blue Iris's timestamp. This option is on the Video tab of camera properties.


    Encoder preset

    When CPU usage is elevated due to a lot of remote viewing using H.264 video, it can help to change the encoder preset.

    Go to Blue Iris Settings, Web server tab, and in the Advanced section you can Configure the encoder profiles which are used for H.264 encoding. The 3 preset choices exposed by Blue Iris, from fastest to slowest, are "ultrafast", "superfast", and "veryfast". "ultrafast" uses the least amount of CPU but produces the lowest video quality. "superfast" is an excellent middle-ground. "veryfast" uses the most CPU and produces the best video quality, but adds some video delay when accessing Blue Iris remotely.


    Limit decoding unless required


    This is a complex feature with many effects, and is not recommended for everyone. Be aware of the side-effects and limitations!

    From the Blue Iris help file:
    Blue Iris Help File said:
    The Limit decoding unless required option exists to further assist with CPU management. When enabled with a compatible camera, the software will decode only the video "key frames" (these are full frames, occurring typically once per second), unless all frames are required. All frames are required for recording without "direct to disc" enabled, or when someone is connected to view the live video via browser or client app. In addition, all frames will be decoded when the camera window is displayed full screen. NOTE that only decoded frames are sent to the motion detector--you will need to determine if an adequate number of frames reaches the motion detector if you decide to use this option.
    There is one notable inaccuracy in that statement. It claims there is typically one keyframe per second, but this is false. Most cameras by default only produce one keyframe every 2-4 seconds. It is advisable to adjust your camera's i-frame interval to be equal to the frame rate if you are going to use Limit decoding unless required along with Blue Iris's motion detection.

    * Note: i-frame is another word for keyframe. GOP ("group of pictures") is also synonymous with "i-frame interval".

    Many users turn this feature on for all their cameras without understanding it, but love the drastic CPU usage savings it provides. Later, they discover that their server's CPU usage hits 100% when they connect to Blue Iris through the web interface or a client app. This happens because remote camera viewing temporarily disables the "limit decoding" feature, and viewing the "All cameras" group disables it for all cameras at the same time! You can prevent this on a per-group basis by unchecking the box "Require/decode all camera frames when streaming" in Blue Iris's group settings panel:

    Blue Iris 4: GroupSettingsPanel-2018-05-31.png

    Blue Iris 5: 2019-05-31 Group Properties.jpg

    Similarly, you must be very careful about using the timeline to play multiple clips at the same time, because decoding of the clips will not be limited.

    Windows Power Options

    Some users have reported that they get much lower CPU usage at the cost of higher power consumption after changing certain settings in Windows's power options. For most systems, this is not a recommended change. By default, Windows's power options allow it to reduce the CPU's clock speed to save power when the load is light. This can cause confusion because CPU usage appears higher when the clock speed is reduced. Usually this comes with no actual performance loss because Windows will increase the CPU speed when the load demands it.