(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{88:function(e,t,a){"use strict";a.r(t),a.d(t,"frontMatter",(function(){return c})),a.d(t,"metadata",(function(){return i})),a.d(t,"toc",(function(){return o})),a.d(t,"default",(function(){return p}));var r=a(3),n=a(7),l=(a(0),a(97)),c={id:"hardware",title:"Recommended hardware"},i={unversionedId:"hardware",id:"hardware",isDocsHomePage:!1,title:"Recommended hardware",description:"Cameras",source:"@site/docs/hardware.md",slug:"/hardware",permalink:"/frigate/hardware",editUrl:"https://github.com/blakeblackshear/frigate/edit/master/docs/docs/hardware.md",version:"current",sidebar:"docs",previous:{title:"How Frigate Works",permalink:"/frigate/how-it-works"},next:{title:"Installation",permalink:"/frigate/installation"}},o=[{value:"Cameras",id:"cameras",children:[]},{value:"Computer",id:"computer",children:[]},{value:"Unraid",id:"unraid",children:[]}],b={toc:o};function p(e){var t=e.components,a=Object(n.a)(e,["components"]);return Object(l.b)("wrapper",Object(r.a)({},b,a,{components:t,mdxType:"MDXLayout"}),Object(l.b)("h2",{id:"cameras"},"Cameras"),Object(l.b)("p",null,"Cameras that output H.264 video and AAC audio will offer the most compatibility with all features of Frigate and HomeAssistant. It is also helpful if your camera supports multiple substreams to allow different resolutions to be used for detection, streaming, clips, and recordings without re-encoding."),Object(l.b)("h2",{id:"computer"},"Computer"),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(l.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Inference Speed"),Object(l.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Notes"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Atomic Pi"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"16ms"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Good option for a dedicated low power board with a small number of cameras. Can leverage Intel QuickSync for stream decoding.")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Intel NUC NUC7i3BNK"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"8-10ms"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Great performance. Can handle many cameras at 5fps depending on typical amounts of motion.")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"BMAX B2 Plus"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"10-12ms"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Good balance of performance and cost. Also capable of running many other services at the same time as frigate.")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Minisforum GK41"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"9-10ms"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Great alternative to a NUC with dual Gigabit NICs. Easily handles several 1080p cameras.")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Raspberry Pi 3B (32bit)"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"60ms"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Can handle a small number of cameras, but the detection speeds are slow due to USB 2.0.")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Raspberry Pi 4 (32bit)"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"15-20ms"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Can handle a small number of cameras. The 2GB version runs fine.")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Raspberry Pi 4 (64bit)"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"10-15ms"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Can handle a small number of cameras. The 2GB version runs fine.")))),Object(l.b)("h2",{id:"unraid"},"Unraid"),Object(l.b)("p",null,"Many people have powerful enough NAS devices or home servers to also run docker. There is a Unraid Community App.\nTo install make sure you have the ",Object(l.b)("a",Object(r.a)({parentName:"p"},{href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"}),"community app plugin here"),'. Then search for "Frigate" in the apps section within Unraid - you can see the online store ',Object(l.b)("a",Object(r.a)({parentName:"p"},{href:"https://unraid.net/community/apps?q=frigate#r"}),"here")),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Name"),Object(l.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Inference Speed"),Object(l.b)("th",Object(r.a)({parentName:"tr"},{align:null}),"Notes"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),Object(l.b)("a",Object(r.a)({parentName:"td"},{href:"http://coral.ai"}),"M2 Coral Edge TPU")),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"6.2ms"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Little complicated to get installed, as needs drivers on the host OS, ",Object(l.b)("a",Object(r.a)({parentName:"td"},{href:"https://forums.unraid.net/topic/98064-support-blakeblackshear-frigate/?do=findComment&comment=945776"}),"info here"))))))}p.isMDXComponent=!0},97:function(e,t,a){"use strict";a.d(t,"a",(function(){return m})),a.d(t,"b",(function(){return s}));var r=a(0),n=a.n(r);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var b=n.a.createContext({}),p=function(e){var t=n.a.useContext(b),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=p(e.components);return n.a.createElement(b.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.a.createElement(n.a.Fragment,{},t)}},d=n.a.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,c=e.parentName,b=o(e,["components","mdxType","originalType","parentName"]),m=p(a),d=r,s=m["".concat(c,".").concat(d)]||m[d]||u[d]||l;return a?n.a.createElement(s,i(i({ref:t},b),{},{components:a})):n.a.createElement(s,i({ref:t},b))}));function s(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,c=new Array(l);c[0]=d;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i.mdxType="string"==typeof e?e:r,c[1]=i;for(var b=2;b