• Blue Iris in a VM - ESXi virtual machine

    I see a lot of posts on https://ipcamtalk.com/ saying Blue Iris shouldn't run on a VM. i got banned for this article, ask yourself who is controlling the narrative and if doing that really gets good information out there or if it causes misinformation? I wanted to share in-depth technical details about my own experience so that others can make an informed decision vs just going with the misguided advice of one person. Usually when someone has trouble with VMs, it's because they use an old crappy machine and expect great performance. Or they buy a "server" on ebay that's out of date and painfully slow. Your VM host needs to be just as fast as if you were building a dedicated machine. Looking at the Passmark specs for the specific CPU will give you an indication of of how well the CPU will perform.

    The goal of my setup was fourfold:
    1) Spectacular performance of Blue Iris first and foremost. No other goal would matter if this could not be achieved.
    2) To run BI on a VM where I could dynamically change resources as needed.
    3) To exchange 4 power hungry computers for one VM host. The VM host would also run 3 other VMs. (EDIT: as of 2021, this i7-6700 beastie now runs 10 VMs, including Blue Iris)
    4) Run ESXi on a powerful desktop which had decent horsepower in a small form factor with low power consumption vs a loud, power hungry server.


    The hypervisor I chose was VMWare's ESXi, version 6.5 at the time to be exact, but it's since been upgraded to 7.0.


    The hardware I chose was:
    Motherboard : Asrock B150M-ITX
    CPU : Intel i7-6700 ( Google i7-6700 Passmark )
    Memory : 16GB DDR4
    Drives : Mix of SSD and platter (EDIT: as of 2021 it's only SSD)
    Total system cost at the time : about $650


    Below is a screenshot of the ESXi info screen.



    The server has 8 vCPU available. Here's how I've set up the VMs on the host:
    Blue Iris : 8 vCPU
    Untangle (my UTM router) : 2vCPU
    Mothership (domain controller) : 1 vCPU
    Ppbe312 (Cyberpower agent for UPS) : 1 vCPU


    Below is a screenshot of my Virtual Machine set up. Untangle shows a warning because it's loosely based on Debain, but not close enough that ESXi is happy with the association.



    The vCPUs are over-budgeted strategically. Blue Iris uses the most CPU, and only about 35% most of the time, while the others may have small intermittent periods of high CPU usage, so the ESXi host never actually hits 100%.


    For cameras I run 13 cameras, 3 are clones of existing cameras with different motion settings to capture everything going on vs specific zones. They range from 720P at the lower resolution to 4k at the highest. I run all cameras at their max framerate, max resolution and max allowed bitrate. I utilize VBR when the camera allows it. Below are my cameras.


    Manufacturer Model FPS Resolution Bitrate Encode mode Firmware App version
    Foscam FI-9900P 25 1920x1080 4096 VBR 1.11.1.13 2.74.1.64
    Amcrest IP3M-954EW 20 2304x1296 10240 VBR H.264H 2.400.0002.15.R, Build Date: 2017-04-26 3.2.1.422026
    Amcrest IP4M-1028EW 30 2688x1520 8192 VBR H.265 2.420.AC01.2.R, Build Date: 2017-07-20 3.2.1.454221
    Amcrest IP4M-1028E 30 2688x1520 8192 CBR H.265 2.420.AC01.1.R, Build Date: 2017-06-15 3.2.1.454221
    Amcrest IP2M-841EW 30 1920x1080 8192 VBR H.264H 2.520.AC00.18.R, Build Date: 2017-06-29 3.2.1.453504
    Trendnet TV-IP572PI 30 1280x800 H.264 1.1.3 Build 5607
    HikVision DS-2CD2432F-IW 20 2048x1536 8192 VBR H.264 V5.4.5 build 170123 V4.0.1 build 170117
    Edimax IC-9110W 30 1280x720 3072 H.264 v3.09 (Dec 27 2017 11:18:33) v2.0.4.0
    Amcrest IP8M-2496E 15 3840x2160 10240 VBR H.264H 2.460.1.0.R 3.2.1.474688
    Amcrest IP2M-841EW 30 1920x1080 8192 VBR H.264H 2.520.AC00.18.R, Build Date: 2017-06-29 3.2.1.453504




    Here is a screenshot of the Blue Iris camera info screen.



    On all cameras I do:
    Motion detection recording
    Keyframes matching FPS
    Overlays on camera
    Direct-to-disc recording
    20MB receive buffer
    7 sec Pre-trigger video buffer


    On cameras where I am less concerned about motion:
    Check "Limit decoding unless required" ensuring keyframe is happening once per second.


    Here are screenshots of my Blue Iris VM utilization, console is open but minimized.




    Here are screenshots of the host utilization.





    So in summary, for me, Blue Iris in a VM works, and works very well. You should not be scared of trying it if you want to get rid of some other power hungry machines in the house.