So Frigate can run in CPU mode and only used CPU for all features. If fact there is a Frigate Light that can be ran and is very easy to setup directly in HA (Home Assistant). However, if one really wants Frigate to show its power it is better to run within Docker. So, I am not going to cover running with hass (HomeAssistant OS) but that is an option. Currently, I have a four camera setup and am running in a SFF (small form factor) PC with an attached usb disk to capture recordings for easy replacement and update. This is running a Coral USB stick for AI. To be frank it is awesome! The only thing I wish my SFF PC had was H.265 hardware acceleration. However, The one I am using does support H.264. So, for best performance make sure to choose cameras that support H.264 streams. I will cover that in my cameras section below.
Overall, I would like to integrate into ProxMox but for now I wanted to focus on getting an understanding of Frigate as itself is quite a lift to install. Hope this helps you get it up and running without so much work! Also, this is a good reference point to improve on the end results of this NVR project in general.
Overall, I am happy with this device. Here is the current CPU and usage with my four cameras running for the last few days.
This is the heart of the AI detection layer used by Frigate. The main reason for to use it is for object detection. That is, it give Frigate a brain. Thus allowing frigate to detect things like Person, Car, Bird, etc..
This device takes the load off of the CPU and allows the CPU to do other things more efficiently. So, I would highly recommend putting one in your configuration. Here is the one I am running and I purchased from Amazon. As many have noted, I think it was a bit expensive but I could not find anywhere else for less so I purchased from Amazon.
Below is the inference speed reported by Frigate. So, from what I understand that is the speed of object detection and depends on CPU in conjunction with the Coral AI TPU device used.
As noted, above this speed depends on CPU of PC running and version of Coral device itself as well as many other factors. So, I have seen this speed range anywhere from the lowest shown above all the way up to ~14 ms so expect similar results if running is a similar environment. This is what you can expect to see if the TPU is properly detected by Frigate otherwise I think it would switch to CPU for detector. I am not sure because it just work on my configuration. Also, I did not want to break what is working.
I have four cameras all purchased from Amazon so I will outline them below.
Here is the Amazon link to my doorbell camera. Now this is also integrated into HA to ring my doorbell via a zigbee relay. More on that in a future post, for now here is what I have setup for that camera in frigate.
Very easy to setup and configure any of the Amcrest devices! So, I would recommend them over many of the others. One note, these all my cameras seem to be Dahua rebranded but that is also nice because I can use Amcrest apps to configure and manipulate the video output of all my cameras for best performance and storage options.
doorbell: ffmpeg: hwaccel_args: preset-intel-qsv-h264 output_args: record: preset-record-generic-audio-aac inputs: - path: rtsp://admin:<YourPass>@192.168.0.50:554/cam/realmonitor?channel=1&subtype=0 roles: - detect - record - rtmp detect: width: 1920 height: 1080 record: enabled: true retain: days: 6 mode: all motion: mask: - 949,409,1872,382,1920,537,1920,611,1920,675,1853,693,1522,743,742,779,724,522 objects: track: - person
So, this was a camera recommended by Frigate site so I wanted to use that as a reference camera and compare to my other cameras. It was also a very recent purchase since I have only been working with frigate for about two weeks at this point. Overall, very happy with the nightvision on this camera. I will post that below as well. Loryta is another Dahua, or maybe the new name for Dahua I am not sure. Anyway, it works great!
driveway: ffmpeg: hwaccel_args: preset-intel-qsv-h264 output_args: record: preset-record-generic-audio-aac inputs: - path: rtsp://admin:<yourpass>@192.168.0.51:554/cam/realmonitor?channel=1&subtype=0 roles: - detect - record - rtmp detect: width: 2688 height: 1520 record: enabled: true retain: days: 4 mode: all objects: track: - person filters: person: mask: - 568,0,796,0,816,83,478,178,368,0
Here is one of the first cameras a purchased and was originally my driveway camera. Maybe I will put it back there however the night vision is not as good as the one I have there now so IDK what I am going to do.
reardoor: ffmpeg: hwaccel_args: preset-intel-qsv-h264 output_args: record: preset-record-generic-audio-aac inputs: - path: rtsp://admin:<yourpass>@192.168.0.52:554/cam/realmonitor?channel=1&subtype=0 roles: - detect - record - rtmp detect: width: 1920 height: 1080 record: enabled: true retain: days: 4 mode: all objects: track: - person
Here, is my very most recent purchase. And yes, I am happy with the output but it is not as good as the driveway for nightvision.
deck: ffmpeg: hwaccel_args: preset-intel-qsv-h264 output_args: record: preset-record-generic-audio-aac inputs: - path: rtsp://admin:<yourpass>@192.168.0.53:554/cam/realmonitor?channel=1&subtype=0 roles: - detect - record - rtmp detect: width: 2592 height: 1944 record: enabled: true retain: days: 4 mode: all objects: track: - person
Networking is critical to any camera system. So, I am using this poe network switch for most of my cameras.
Not much to configure here just plug into router via port 5 and it will uplink with your network at up to 1 GB/s. Note, I have seen comments that this switch is only 100 MB/s on the POE ports. I have not confirmed that nore do I really care at this point as non of my cameras are transmitting close to ever 100 MB/s. So, for my needs this gets enough power to the cameras and all is working great.
Optional but HIGHLY recommended – Lightning Protection
There are many options here so it depends on your network configuration. This will isolate lightning damage to switch, converter and cameras connected to switch in the event of a lightning strike induced spike on the camera network. So, if many zones are going to be connected then it is recommended to have one to each zone. Also, that will isolate damage to zone impacted by lighting strike.
Simplest and cheapest I have seen.