diff --git a/README.md b/README.md index 78040656a..012a856af 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ # Frigate - NVR With Realtime Object Detection for IP Cameras -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. +A complete and local NVR designed for [Home Assistant](https://www.home-assistant.io) with AI object detection. Uses OpenCV and Tensorflow to perform realtime object detection locally for IP cameras. Use of a [Google Coral Accelerator](https://coral.ai/products/) is optional, but highly recommended. The Coral will outperform even the best CPUs and can process 100+ FPS with very little overhead. -- Tight integration with HomeAssistant via a [custom component](https://github.com/blakeblackshear/frigate-hass-integration) +- Tight integration with Home Assistant via a [custom component](https://github.com/blakeblackshear/frigate-hass-integration) - Designed to minimize resource use and maximize performance by only looking for objects when and where it is necessary - Leverages multiprocessing heavily with an emphasis on realtime over processing every frame - Uses a very low overhead motion detection to determine where to run object detection @@ -26,7 +26,7 @@ View the documentation at https://blakeblackshear.github.io/frigate If you would like to make a donation to support development, please use [Github Sponsors](https://github.com/sponsors/blakeblackshear). ## Screenshots -Integration into HomeAssistant +Integration into Home Assistant
diff --git a/docs/docs/configuration/cameras.md b/docs/docs/configuration/cameras.md index 00b4d0c2e..d63b812cb 100644 --- a/docs/docs/configuration/cameras.md +++ b/docs/docs/configuration/cameras.md @@ -388,6 +388,36 @@ cameras: ## Camera specific configuration +### MJPEG Cameras + +The input and output parameters need to be adjusted for MJPEG cameras + +```yaml + input_args: + - -avoid_negative_ts + - make_zero + - -fflags + - nobuffer + - -flags + - low_delay + - -strict + - experimental + - -fflags + - +genpts+discardcorrupt + - -r + - '3' # <---- adjust depending on your desired frame rate from the mjpeg image + - -use_wallclock_as_timestamps + - '1' +``` + +Note that mjpeg cameras require encoding the video into h264 for clips, recording, and rtmp roles. This will use significantly more CPU than if the cameras supported h264 feeds directly. +```yaml + output_args: + record: -f segment -segment_time 60 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c:v libx264 -an + clips: -f segment -segment_time 60 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c:v libx264 -an + rtmp: -c:v libx264 -an -f flv +``` + ### RTMP Cameras The input parameters need to be adjusted for RTMP cameras diff --git a/docs/docs/configuration/detectors.md b/docs/docs/configuration/detectors.md index 3e59e6792..a7bbdab79 100644 --- a/docs/docs/configuration/detectors.md +++ b/docs/docs/configuration/detectors.md @@ -30,6 +30,18 @@ detectors: device: usb:1 ``` +Multiple PCIE/M.2 Corals: + +```yaml +detectors: + coral1: + type: edgetpu + device: pci:0 + coral2: + type: edgetpu + device: pci:1 +``` + Mixing Corals: ```yaml diff --git a/docs/docs/configuration/nvdec.md b/docs/docs/configuration/nvdec.md index 0037495f6..b2ec01a47 100644 --- a/docs/docs/configuration/nvdec.md +++ b/docs/docs/configuration/nvdec.md @@ -55,7 +55,7 @@ A list of supported codecs (you can use `ffmpeg -decoders | grep cuvid` in the c ``` For example, for H265 video (hevc), you'll select `hevc_cuvid`. Add -`-c:v hevc_covid` to your ffmpeg input arguments: +`-c:v hevc_cuvid` to your ffmpeg input arguments: ``` ffmpeg: diff --git a/docs/docs/installation.md b/docs/docs/installation.md index bcd56ca7a..e0ca3fdb6 100644 --- a/docs/docs/installation.md +++ b/docs/docs/installation.md @@ -67,7 +67,7 @@ docker run -d \ --restart=unless-stopped \ --mount type=tmpfs,target=/tmp/cache,tmpfs-size=1000000000 \ --device /dev/bus/usb:/dev/bus/usb \ - --device /dev/dri/renderD128 + --device /dev/dri/renderD128 \ -v :/media/frigate \ -v :/config/config.yml:ro \ -v /etc/localtime:/etc/localtime:ro \ diff --git a/docs/docs/usage/howtos.md b/docs/docs/usage/howtos.md new file mode 100644 index 000000000..65aa2362d --- /dev/null +++ b/docs/docs/usage/howtos.md @@ -0,0 +1,15 @@ +--- +id: howtos +title: Community Guides +sidebar_label: Community Guides +--- + +## Communitiy Guides/How-To's + +You can find here some of the communitiy videos and articles about Frigate: + +- Home Assistant Frigate integration for local image recognition (YouTube video) - [LINK](https://youtu.be/Q2UT78lFQpo) +- Home Assistant Frigate integration for local image recognition (Article) - [LINK](https://peyanski.com/home-assistant-frigate-integration/) +- Best Camera AI Person & Object Detection - How to Setup Frigate w/ Home Assistant (YouTube video) - [LINK](https://youtu.be/V8vGdoYO6-Y) + +If you find more good Frigate guides - let us know! diff --git a/web/package-lock.json b/web/package-lock.json index 678a75720..d513259f2 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -6544,9 +6544,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "html-encoding-sniffer": { @@ -8680,9 +8680,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "lodash.difference": { @@ -8936,9 +8936,9 @@ } }, "nanoid": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", - "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", "dev": true }, "nanomatch": { @@ -9448,20 +9448,20 @@ "dev": true }, "postcss": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.2.tgz", - "integrity": "sha512-HM1NDNWLgglJPQQMNwvLxgH2KcrKZklKLi/xXYIOaqQB57p/pDWEJNS83PVICYsn1Dg/9C26TiejNr422/ePaQ==", + "version": "8.2.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.10.tgz", + "integrity": "sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==", "dev": true, "requires": { - "colorette": "^1.2.1", - "nanoid": "^3.1.20", + "colorette": "^1.2.2", + "nanoid": "^3.1.22", "source-map": "^0.6.1" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", "dev": true } } diff --git a/web/package.json b/web/package.json index 68419e2ed..164eb4fb8 100644 --- a/web/package.json +++ b/web/package.json @@ -35,7 +35,7 @@ "eslint-plugin-jest": "^24.1.3", "eslint-plugin-testing-library": "^3.10.1", "jest": "^26.6.3", - "postcss": "^8.2.2", + "postcss": "^8.2.10", "postcss-cli": "^8.3.1", "prettier": "^2.2.1", "rimraf": "^3.0.2",