(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{173:function(e,t,r){"use strict";r.r(t),t.default=r.p+"assets/images/media_browser-1a855eaa41d4cf33b7dbc6586cb12a6d.png"},174:function(e,t,r){"use strict";r.r(t),t.default=r.p+"assets/images/notification-b2414ed687bb4ab92b9dfaab95a5a33c.png"},91:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return i})),r.d(t,"metadata",(function(){return c})),r.d(t,"toc",(function(){return s})),r.d(t,"default",(function(){return u}));var n=r(3),o=r(7),a=(r(0),r(99)),i={id:"index",title:"Frigate",sidebar_label:"Features",slug:"/"},c={unversionedId:"index",id:"index",isDocsHomePage:!1,title:"Frigate",description:"A complete and local NVR designed for HomeAssistant with AI object detection. Uses OpenCV and Tensorflow to perform realtime object detection locally for IP cameras.",source:"@site/docs/index.md",slug:"/",permalink:"/frigate/",editUrl:"https://github.com/blakeblackshear/frigate/edit/master/docs/docs/index.md",version:"current",sidebar_label:"Features",sidebar:"docs",next:{title:"How Frigate Works",permalink:"/frigate/how-it-works"}},s=[{value:"Screenshots",id:"screenshots",children:[]}],l={toc:s};function u(e){var t=e.components,i=Object(o.a)(e,["components"]);return Object(a.b)("wrapper",Object(n.a)({},l,i,{components:t,mdxType:"MDXLayout"}),Object(a.b)("p",null,"A complete and local NVR designed for HomeAssistant with AI object detection. Uses OpenCV and Tensorflow to perform realtime object detection locally for IP cameras."),Object(a.b)("p",null,"Use of a ",Object(a.b)("a",Object(n.a)({parentName:"p"},{href:"https://coral.ai/products/"}),"Google Coral Accelerator")," is optional, but highly recommended. The Coral will outperform even the best CPUs and can process 100+ FPS with very little overhead."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},"Tight integration with HomeAssistant via a ",Object(a.b)("a",Object(n.a)({parentName:"li"},{href:"https://github.com/blakeblackshear/frigate-hass-integration"}),"custom component")),Object(a.b)("li",{parentName:"ul"},"Designed to minimize resource use and maximize performance by only looking for objects when and where it is necessary"),Object(a.b)("li",{parentName:"ul"},"Leverages multiprocessing heavily with an emphasis on realtime over processing every frame"),Object(a.b)("li",{parentName:"ul"},"Uses a very low overhead motion detection to determine where to run object detection"),Object(a.b)("li",{parentName:"ul"},"Object detection with TensorFlow runs in separate processes for maximum FPS"),Object(a.b)("li",{parentName:"ul"},"Communicates over MQTT for easy integration into other systems"),Object(a.b)("li",{parentName:"ul"},"24/7 recording"),Object(a.b)("li",{parentName:"ul"},"Re-streaming via RTMP to reduce the number of connections to your camera")),Object(a.b)("h2",{id:"screenshots"},"Screenshots"),Object(a.b)("p",null,Object(a.b)("img",{alt:"Media Browser",src:r(173).default})),Object(a.b)("p",null,Object(a.b)("img",{alt:"Notification",src:r(174).default})))}u.isMDXComponent=!0},99:function(e,t,r){"use strict";r.d(t,"a",(function(){return b})),r.d(t,"b",(function(){return d}));var n=r(0),o=r.n(n);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=o.a.createContext({}),u=function(e){var t=o.a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},b=function(e){var t=u(e.components);return o.a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},m=o.a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,i=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),b=u(r),m=n,d=b["".concat(i,".").concat(m)]||b[m]||p[m]||a;return r?o.a.createElement(d,c(c({ref:t},l),{},{components:r})):o.a.createElement(d,c({ref:t},l))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:n,i[1]=c;for(var l=2;l