mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
Merge remote-tracking branch 'origin/master' into dev
This commit is contained in:
commit
47ad0ca993
@ -183,7 +183,7 @@ To do this:
|
|||||||
3. Give `go2rtc` execute permission.
|
3. Give `go2rtc` execute permission.
|
||||||
4. Restart Frigate and the custom version will be used, you can verify by checking go2rtc logs.
|
4. Restart Frigate and the custom version will be used, you can verify by checking go2rtc logs.
|
||||||
|
|
||||||
## Validating your config.yaml file updates
|
## Validating your config.yml file updates
|
||||||
|
|
||||||
When frigate starts up, it checks whether your config file is valid, and if it is not, the process exits. To minimize interruptions when updating your config, you have three options -- you can edit the config via the WebUI which has built in validation, use the config API, or you can validate on the command line using the frigate docker container.
|
When frigate starts up, it checks whether your config file is valid, and if it is not, the process exits. To minimize interruptions when updating your config, you have three options -- you can edit the config via the WebUI which has built in validation, use the config API, or you can validate on the command line using the frigate docker container.
|
||||||
|
|
||||||
|
@ -9,6 +9,12 @@ This page makes use of presets of FFmpeg args. For more information on presets,
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
:::note
|
||||||
|
|
||||||
|
Many cameras support encoding options which greatly affect the live view experience, see the [Live view](/configuration/live) page for more info.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
## MJPEG Cameras
|
## MJPEG Cameras
|
||||||
|
|
||||||
Note that mjpeg cameras require encoding the video into h264 for recording, and restream roles. This will use significantly more CPU than if the cameras supported h264 feeds directly. It is recommended to use the restream role to create an h264 restream and then use that as the source for ffmpeg.
|
Note that mjpeg cameras require encoding the video into h264 for recording, and restream roles. This will use significantly more CPU than if the cameras supported h264 feeds directly. It is recommended to use the restream role to create an h264 restream and then use that as the source for ffmpeg.
|
||||||
|
@ -79,29 +79,41 @@ cameras:
|
|||||||
|
|
||||||
If the ONVIF connection is successful, PTZ controls will be available in the camera's WebUI.
|
If the ONVIF connection is successful, PTZ controls will be available in the camera's WebUI.
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
If your ONVIF camera does not require authentication credentials, you may still need to specify an empty string for `user` and `password`, eg: `user: ""` and `password: ""`.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
An ONVIF-capable camera that supports relative movement within the field of view (FOV) can also be configured to automatically track moving objects and keep them in the center of the frame. For autotracking setup, see the [autotracking](autotracking.md) docs.
|
An ONVIF-capable camera that supports relative movement within the field of view (FOV) can also be configured to automatically track moving objects and keep them in the center of the frame. For autotracking setup, see the [autotracking](autotracking.md) docs.
|
||||||
|
|
||||||
## ONVIF PTZ camera recommendations
|
## ONVIF PTZ camera recommendations
|
||||||
|
|
||||||
This list of working and non-working PTZ cameras is based on user feedback.
|
This list of working and non-working PTZ cameras is based on user feedback.
|
||||||
|
|
||||||
| Brand or specific camera | PTZ Controls | Autotracking | Notes |
|
| Brand or specific camera | PTZ Controls | Autotracking | Notes |
|
||||||
| ------------------------ | :----------: | :----------: | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ---------------------------- | :----------: | :----------: | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| Amcrest | ✅ | ✅ | ⛔️ Generally, Amcrest should work, but some older models (like the common IP2M-841) don't support autotracking |
|
| Amcrest | ✅ | ✅ | ⛔️ Generally, Amcrest should work, but some older models (like the common IP2M-841) don't support autotracking |
|
||||||
| Amcrest ASH21 | ❌ | ❌ | No ONVIF support |
|
| Amcrest ASH21 | ✅ | ❌ | ONVIF service port: 80 |
|
||||||
| Ctronics PTZ | ✅ | ❌ | |
|
| Amcrest IP4M-S2112EW-AI | ✅ | ❌ | FOV relative movement not supported. |
|
||||||
| Dahua | ✅ | ✅ | |
|
| Amcrest IP5M-1190EW | ✅ | ❌ | ONVIF Port: 80. FOV relative movement not supported. |
|
||||||
| Foscam R5 | ✅ | ❌ | |
|
| Ctronics PTZ | ✅ | ❌ | |
|
||||||
| Hanwha XNP-6550RH | ✅ | ❌ | |
|
| Dahua | ✅ | ✅ | |
|
||||||
| Hikvision | ✅ | ❌ | Incomplete ONVIF support (MoveStatus won't update even on latest firmware) - reported with HWP-N4215IH-DE and DS-2DE3304W-DE, but likely others |
|
| Dahua DH-SD2A500HB | ✅ | ❌ | |
|
||||||
| Reolink 511WA | ✅ | ❌ | Zoom only |
|
| Foscam R5 | ✅ | ❌ | |
|
||||||
| Reolink E1 Pro | ✅ | ❌ | |
|
| Hanwha XNP-6550RH | ✅ | ❌ | |
|
||||||
| Reolink E1 Zoom | ✅ | ❌ | |
|
| Hikvision | ✅ | ❌ | Incomplete ONVIF support (MoveStatus won't update even on latest firmware) - reported with HWP-N4215IH-DE and DS-2DE3304W-DE, but likely others |
|
||||||
| Reolink RLC-823A 16x | ✅ | ❌ | |
|
| Hikvision DS-2DE3A404IWG-E/W | ✅ | ✅ | |
|
||||||
| Sunba 405-D20X | ✅ | ❌ | |
|
| Reolink 511WA | ✅ | ❌ | Zoom only |
|
||||||
| Tapo | ✅ | ❌ | Many models supported, ONVIF Service Port: 2020 |
|
| Reolink E1 Pro | ✅ | ❌ | |
|
||||||
| Uniview IPC672LR-AX4DUPK | ✅ | ❌ | Firmware says FOV relative movement is supported, but camera doesn't actually move when sending ONVIF commands |
|
| Reolink E1 Zoom | ✅ | ❌ | |
|
||||||
| Vikylin PTZ-2804X-I2 | ❌ | ❌ | Incomplete ONVIF support |
|
| Reolink RLC-823A 16x | ✅ | ❌ | |
|
||||||
|
| Speco O8P32X | ✅ | ❌ | |
|
||||||
|
| Sunba 405-D20X | ✅ | ❌ | |
|
||||||
|
| Tapo | ✅ | ❌ | Many models supported, ONVIF Service Port: 2020 |
|
||||||
|
| Uniview IPC672LR-AX4DUPK | ✅ | ❌ | Firmware says FOV relative movement is supported, but camera doesn't actually move when sending ONVIF commands |
|
||||||
|
| Uniview IPC6612SR-X33-VG | ✅ | ✅ | Leave `calibrate_on_startup` as `False`. A user has reported that zooming with `absolute` is working. |
|
||||||
|
| Vikylin PTZ-2804X-I2 | ❌ | ❌ | Incomplete ONVIF support |
|
||||||
|
|
||||||
## Setting up camera groups
|
## Setting up camera groups
|
||||||
|
|
||||||
|
@ -383,7 +383,7 @@ Make sure to follow the [Rockchip specific installation instructions](/frigate/i
|
|||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
|
|
||||||
Add one of the following FFmpeg presets to your `config.yaml` to enable hardware video processing:
|
Add one of the following FFmpeg presets to your `config.yml` to enable hardware video processing:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# if you try to decode a h264 encoded stream
|
# if you try to decode a h264 encoded stream
|
||||||
|
@ -11,11 +11,21 @@ Frigate intelligently uses three different streaming technologies to display you
|
|||||||
|
|
||||||
The jsmpeg live view will use more browser and client GPU resources. Using go2rtc is highly recommended and will provide a superior experience.
|
The jsmpeg live view will use more browser and client GPU resources. Using go2rtc is highly recommended and will provide a superior experience.
|
||||||
|
|
||||||
| Source | Latency | Frame Rate | Resolution | Audio | Requires go2rtc | Other Limitations |
|
| Source | Frame Rate | Resolution | Audio | Requires go2rtc | Notes |
|
||||||
| ------ | ------- | ------------------------------------- | ---------- | ---------------------------- | --------------- | ------------------------------------------------------------------------------------ |
|
| ------ | ------------------------------------- | ---------- | ---------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| jsmpeg | low | same as `detect -> fps`, capped at 10 | 720p | no | no | resolution is configurable, but go2rtc is recommended if you want higher resolutions |
|
| jsmpeg | same as `detect -> fps`, capped at 10 | 720p | no | no | Resolution is configurable, but go2rtc is recommended if you want higher resolutions and better frame rates. jsmpeg is Frigate's default without go2rtc configured. |
|
||||||
| mse | low | native | native | yes (depends on audio codec) | yes | iPhone requires iOS 17.1+, Firefox is h.264 only |
|
| mse | native | native | yes (depends on audio codec) | yes | iPhone requires iOS 17.1+, Firefox is h.264 only. This is Frigate's default when go2rtc is configured. |
|
||||||
| webrtc | lowest | native | native | yes (depends on audio codec) | yes | requires extra config, doesn't support h.265 |
|
| webrtc | native | native | yes (depends on audio codec) | yes | Requires extra configuration, doesn't support h.265. Frigate attempts to use WebRTC when MSE fails or when using a camera's two-way talk feature. |
|
||||||
|
|
||||||
|
### Camera Settings Recommendations
|
||||||
|
|
||||||
|
If you are using go2rtc, you should adjust the following settings in your camera's firmware for the best experience with Live view:
|
||||||
|
|
||||||
|
- Video codec: **H.264** - provides the most compatible video codec with all Live view technologies and browsers. Avoid any kind of "smart codec" or "+" codec like _H.264+_ or _H.265+_. as these non-standard codecs remove keyframes (see below).
|
||||||
|
- Audio codec: **AAC** - provides the most compatible audio codec with all Live view technologies and browsers that support audio.
|
||||||
|
- I-frame interval (sometimes called the keyframe interval, the interframe space, or the GOP length): match your camera's frame rate, or choose "1x" (for interframe space on Reolink cameras). For example, if your stream outputs 20fps, your i-frame interval should be 20 (or 1x on Reolink). Values higher than the frame rate will cause the stream to take longer to begin playback. See [this page](https://gardinal.net/understanding-the-keyframe-interval/) for more on keyframes.
|
||||||
|
|
||||||
|
The default video and audio codec on your camera may not always be compatible with your browser, which is why setting them to H.264 and AAC is recommended. See the [go2rtc docs](https://github.com/AlexxIT/go2rtc?tab=readme-ov-file#codecs-madness) for codec support information.
|
||||||
|
|
||||||
### Audio Support
|
### Audio Support
|
||||||
|
|
||||||
@ -32,6 +42,15 @@ go2rtc:
|
|||||||
- "ffmpeg:http_cam#audio=opus" # <- copy of the stream which transcodes audio to the missing codec (usually will be opus)
|
- "ffmpeg:http_cam#audio=opus" # <- copy of the stream which transcodes audio to the missing codec (usually will be opus)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If your camera does not have audio and you are having problems with Live view, you should have go2rtc send video only:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
go2rtc:
|
||||||
|
streams:
|
||||||
|
no_audio_camera:
|
||||||
|
- ffmpeg:rtsp://192.168.1.5:554/live0#video=copy
|
||||||
|
```
|
||||||
|
|
||||||
### Setting Stream For Live UI
|
### Setting Stream For Live UI
|
||||||
|
|
||||||
There may be some cameras that you would prefer to use the sub stream for live view, but the main stream for recording. This can be done via `live -> stream_name`.
|
There may be some cameras that you would prefer to use the sub stream for live view, but the main stream for recording. This can be done via `live -> stream_name`.
|
||||||
|
@ -167,7 +167,7 @@ This detector also supports YOLOX. Frigate does not come with any YOLOX models p
|
|||||||
|
|
||||||
#### YOLO-NAS
|
#### YOLO-NAS
|
||||||
|
|
||||||
[YOLO-NAS](https://github.com/Deci-AI/super-gradients/blob/master/YOLONAS.md) models are supported, but not included by default. You can build and download a compatible model with pre-trained weights using [this notebook](https://github.com/frigate/blob/dev/notebooks/YOLO_NAS_Pretrained_Export.ipynb) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/blakeblackshear/frigate/blob/dev/notebooks/YOLO_NAS_Pretrained_Export.ipynb).
|
[YOLO-NAS](https://github.com/Deci-AI/super-gradients/blob/master/YOLONAS.md) models are supported, but not included by default. You can build and download a compatible model with pre-trained weights using [this notebook](https://github.com/blakeblackshear/frigate/blob/dev/notebooks/YOLO_NAS_Pretrained_Export.ipynb) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/blakeblackshear/frigate/blob/dev/notebooks/YOLO_NAS_Pretrained_Export.ipynb).
|
||||||
|
|
||||||
:::warning
|
:::warning
|
||||||
|
|
||||||
|
24
docs/docs/configuration/pwa.md
Normal file
24
docs/docs/configuration/pwa.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
id: pwa
|
||||||
|
title: Installing Frigate App
|
||||||
|
---
|
||||||
|
|
||||||
|
Frigate supports being installed as a [Progressive Web App](https://web.dev/explore/progressive-web-apps) on Desktop, Android, and iOS.
|
||||||
|
|
||||||
|
This adds features including the ability to deep link directly into the app.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
In order to install Frigate as a PWA, the following requirements must be met:
|
||||||
|
|
||||||
|
- Frigate must be accessed via a secure context (localhost, secure https, etc.)
|
||||||
|
- On Android, Firefox, Chrome, Edge, Opera, and Samsung Internet Browser all support installing PWAs.
|
||||||
|
- On iOS 16.4 and later, PWAs can be installed from the Share menu in Safari, Chrome, Edge, Firefox, and Orion.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Installation varies slightly based on the device that is being used:
|
||||||
|
|
||||||
|
- Desktop: Use the install button typically found in right edge of the address bar
|
||||||
|
- Android: Use the `Install as App` button in the more options menu
|
||||||
|
- iOS: Use the `Add to Homescreen` button in the share menu
|
@ -334,6 +334,9 @@ review:
|
|||||||
- car
|
- car
|
||||||
- person
|
- person
|
||||||
# Optional: required zones for an object to be marked as an alert (default: none)
|
# Optional: required zones for an object to be marked as an alert (default: none)
|
||||||
|
# NOTE: when settings required zones globally, this zone must exist on all cameras
|
||||||
|
# or the config will be considered invalid. In that case the required_zones
|
||||||
|
# should be configured at the camera level.
|
||||||
required_zones:
|
required_zones:
|
||||||
- driveway
|
- driveway
|
||||||
# Optional: detections configuration
|
# Optional: detections configuration
|
||||||
@ -343,12 +346,20 @@ review:
|
|||||||
- car
|
- car
|
||||||
- person
|
- person
|
||||||
# Optional: required zones for an object to be marked as a detection (default: none)
|
# Optional: required zones for an object to be marked as a detection (default: none)
|
||||||
|
# NOTE: when settings required zones globally, this zone must exist on all cameras
|
||||||
|
# or the config will be considered invalid. In that case the required_zones
|
||||||
|
# should be configured at the camera level.
|
||||||
required_zones:
|
required_zones:
|
||||||
- driveway
|
- driveway
|
||||||
|
|
||||||
# Optional: Motion configuration
|
# Optional: Motion configuration
|
||||||
# NOTE: Can be overridden at the camera level
|
# NOTE: Can be overridden at the camera level
|
||||||
motion:
|
motion:
|
||||||
|
# Optional: enables detection for the camera (default: True)
|
||||||
|
# NOTE: Motion detection is required for object detection,
|
||||||
|
# setting this to False and leaving detect enabled
|
||||||
|
# will result in an error on startup.
|
||||||
|
enabled: False
|
||||||
# Optional: The threshold passed to cv2.threshold to determine if a pixel is different enough to be counted as motion. (default: shown below)
|
# Optional: The threshold passed to cv2.threshold to determine if a pixel is different enough to be counted as motion. (default: shown below)
|
||||||
# Increasing this value will make motion detection less sensitive and decreasing it will make motion detection more sensitive.
|
# Increasing this value will make motion detection less sensitive and decreasing it will make motion detection more sensitive.
|
||||||
# The value should be between 1 and 255.
|
# The value should be between 1 and 255.
|
||||||
@ -804,7 +815,7 @@ camera_groups:
|
|||||||
- side_cam
|
- side_cam
|
||||||
- front_doorbell_cam
|
- front_doorbell_cam
|
||||||
# Required: icon used for group
|
# Required: icon used for group
|
||||||
icon: car
|
icon: LuCar
|
||||||
# Required: index of this group
|
# Required: index of this group
|
||||||
order: 0
|
order: 0
|
||||||
```
|
```
|
||||||
|
@ -41,8 +41,6 @@ review:
|
|||||||
|
|
||||||
By default all detections that do not qualify as an alert qualify as a detection. However, detections can further be filtered to only include certain labels or certain zones.
|
By default all detections that do not qualify as an alert qualify as a detection. However, detections can further be filtered to only include certain labels or certain zones.
|
||||||
|
|
||||||
By default a review item will only be marked as an alert if a person or car is detected. This can be configured to include any object or audio label using the following config:
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# can be overridden at the camera level
|
# can be overridden at the camera level
|
||||||
review:
|
review:
|
||||||
|
@ -69,6 +69,7 @@ Inference speeds vary greatly depending on the CPU, GPU, or VPU used, some known
|
|||||||
| Intel i5 7500 | ~ 15 ms | Inference speeds on CPU were ~ 260 ms |
|
| Intel i5 7500 | ~ 15 ms | Inference speeds on CPU were ~ 260 ms |
|
||||||
| Intel i5 1135G7 | 10 - 15 ms | |
|
| Intel i5 1135G7 | 10 - 15 ms | |
|
||||||
| Intel i5 12600K | ~ 15 ms | Inference speeds on CPU were ~ 35 ms |
|
| Intel i5 12600K | ~ 15 ms | Inference speeds on CPU were ~ 35 ms |
|
||||||
|
| Intel Arc A750 | ~ 4 ms | |
|
||||||
|
|
||||||
### TensorRT - Nvidia GPU
|
### TensorRT - Nvidia GPU
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ Use of the bundled go2rtc is optional. You can still configure FFmpeg to connect
|
|||||||
|
|
||||||
# Setup a go2rtc stream
|
# Setup a go2rtc stream
|
||||||
|
|
||||||
First, you will want to configure go2rtc to connect to your camera stream by adding the stream you want to use for live view in your Frigate config file. If you set the stream name under go2rtc to match the name of your camera, it will automatically be mapped and you will get additional live view options for the camera. Avoid changing any other parts of your config at this step. Note that go2rtc supports [many different stream types](https://github.com/AlexxIT/go2rtc/tree/v1.9.4#module-streams), not just rtsp.
|
First, you will want to configure go2rtc to connect to your camera stream by adding the stream you want to use for live view in your Frigate config file. For the best experience, you should set the stream name under go2rtc to match the name of your camera so that Frigate will automatically map it and be able to use better live view options for the camera. Avoid changing any other parts of your config at this step. Note that go2rtc supports [many different stream types](https://github.com/AlexxIT/go2rtc/tree/v1.9.4#module-streams), not just rtsp.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
go2rtc:
|
go2rtc:
|
||||||
@ -22,7 +22,7 @@ go2rtc:
|
|||||||
- rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
|
- rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
|
||||||
```
|
```
|
||||||
|
|
||||||
The easiest live view to get working is MSE. After adding this to the config, restart Frigate and try to watch the live stream by selecting MSE in the dropdown after clicking on the camera.
|
After adding this to the config, restart Frigate and try to watch the live stream for a single camera by clicking on it from the dashboard. It should look much clearer and more fluent than the original jsmpeg stream.
|
||||||
|
|
||||||
|
|
||||||
### What if my video doesn't play?
|
### What if my video doesn't play?
|
||||||
@ -46,7 +46,7 @@ The easiest live view to get working is MSE. After adding this to the config, re
|
|||||||
streams:
|
streams:
|
||||||
back:
|
back:
|
||||||
- rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
|
- rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
|
||||||
- "ffmpeg:back#video=h264"
|
- "ffmpeg:back#video=h264#hardware"
|
||||||
```
|
```
|
||||||
|
|
||||||
- Switch to FFmpeg if needed:
|
- Switch to FFmpeg if needed:
|
||||||
@ -58,9 +58,8 @@ The easiest live view to get working is MSE. After adding this to the config, re
|
|||||||
- ffmpeg:rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
|
- ffmpeg:rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
|
||||||
```
|
```
|
||||||
|
|
||||||
- If you can see the video but do not have audio, this is most likely because your
|
- If you can see the video but do not have audio, this is most likely because your camera's audio stream codec is not AAC.
|
||||||
camera's audio stream is not AAC.
|
- If possible, update your camera's audio settings to AAC in your camera's firmware.
|
||||||
- If possible, update your camera's audio settings to AAC.
|
|
||||||
- If your cameras do not support AAC audio, you will need to tell go2rtc to re-encode the audio to AAC on demand if you want audio. This will use additional CPU and add some latency. To add AAC audio on demand, you can update your go2rtc config as follows:
|
- If your cameras do not support AAC audio, you will need to tell go2rtc to re-encode the audio to AAC on demand if you want audio. This will use additional CPU and add some latency. To add AAC audio on demand, you can update your go2rtc config as follows:
|
||||||
```yaml
|
```yaml
|
||||||
go2rtc:
|
go2rtc:
|
||||||
@ -77,7 +76,7 @@ camera's audio stream is not AAC.
|
|||||||
streams:
|
streams:
|
||||||
back:
|
back:
|
||||||
- rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
|
- rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
|
||||||
- "ffmpeg:back#video=h264#audio=aac"
|
- "ffmpeg:back#video=h264#audio=aac#hardware"
|
||||||
```
|
```
|
||||||
|
|
||||||
When using the ffmpeg module, you would add AAC audio like this:
|
When using the ffmpeg module, you would add AAC audio like this:
|
||||||
@ -86,7 +85,7 @@ camera's audio stream is not AAC.
|
|||||||
go2rtc:
|
go2rtc:
|
||||||
streams:
|
streams:
|
||||||
back:
|
back:
|
||||||
- "ffmpeg:rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2#video=copy#audio=copy#audio=aac"
|
- "ffmpeg:rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2#video=copy#audio=copy#audio=aac#hardware"
|
||||||
```
|
```
|
||||||
|
|
||||||
:::warning
|
:::warning
|
||||||
@ -102,4 +101,4 @@ section.
|
|||||||
## Next steps
|
## Next steps
|
||||||
|
|
||||||
1. If the stream you added to go2rtc is also used by Frigate for the `record` or `detect` role, you can migrate your config to pull from the RTSP restream to reduce the number of connections to your camera as shown [here](/configuration/restream#reduce-connections-to-camera).
|
1. If the stream you added to go2rtc is also used by Frigate for the `record` or `detect` role, you can migrate your config to pull from the RTSP restream to reduce the number of connections to your camera as shown [here](/configuration/restream#reduce-connections-to-camera).
|
||||||
1. You may also prefer to [setup WebRTC](/configuration/live#webrtc-extra-configuration) for slightly lower latency than MSE. Note that WebRTC only supports h264 and specific audio formats.
|
2. You may also prefer to [setup WebRTC](/configuration/live#webrtc-extra-configuration) for slightly lower latency than MSE. Note that WebRTC only supports h264 and specific audio formats and may require opening ports on your router.
|
||||||
|
@ -3,25 +3,38 @@ id: reverse_proxy
|
|||||||
title: Setting up a reverse proxy
|
title: Setting up a reverse proxy
|
||||||
---
|
---
|
||||||
|
|
||||||
This guide outlines the basic configuration steps needed to expose your Frigate UI to the internet.
|
This guide outlines the basic configuration steps needed to set up a reverse proxy in front of your Frigate instance.
|
||||||
A common way of accomplishing this is to use a reverse proxy webserver between your router and your Frigate instance.
|
|
||||||
A reverse proxy accepts HTTP requests from the public internet and redirects them transparently to internal webserver(s) on your network.
|
|
||||||
|
|
||||||
The suggested steps are:
|
A reverse proxy is typically needed if you want to set up Frigate on a custom URL, on a subdomain, or on a host serving multiple sites. It could also be used to set up your own authentication provider or for more advanced HTTP routing.
|
||||||
|
|
||||||
- **Configure** a 'proxy' HTTP webserver (such as [Apache2](https://httpd.apache.org/docs/current/) or [NPM](https://github.com/NginxProxyManager/nginx-proxy-manager)) and only expose ports 80/443 from this webserver to the internet
|
Before setting up a reverse proxy, check if any of the built-in functionality in Frigate suits your needs:
|
||||||
- **Encrypt** content from the proxy webserver by installing SSL (such as with [Let's Encrypt](https://letsencrypt.org/)). Note that SSL is then not required on your Frigate webserver as the proxy encrypts all requests for you
|
|Topic|Docs|
|
||||||
- **Restrict** access to your Frigate instance at the proxy using, for example, password authentication
|
|-|-|
|
||||||
|
|TLS|Please see the `tls` [configuration option](../configuration/tls.md)|
|
||||||
|
|Authentication|Please see the [authentication](../configuration/authentication.md) documentation|
|
||||||
|
|IPv6|[Enabling IPv6](../configuration/advanced.md#enabling-ipv6)
|
||||||
|
|
||||||
|
**Note about TLS**
|
||||||
|
When using a reverse proxy, the TLS session is usually terminated at the proxy, sending the internal request over plain HTTP. If this is the desired behavior, TLS must first be disabled in Frigate, or you will encounter an HTTP 400 error: "The plain HTTP request was sent to HTTPS port."
|
||||||
|
To disable TLS, set the following in your Frigate configuration:
|
||||||
|
```yml
|
||||||
|
tls:
|
||||||
|
enabled: false
|
||||||
|
```
|
||||||
|
|
||||||
:::warning
|
:::warning
|
||||||
A reverse proxy can be used to secure access to an internal webserver but the user will be entirely reliant
|
A reverse proxy can be used to secure access to an internal web server, but the user will be entirely reliant on the steps they have taken. You must ensure you are following security best practices.
|
||||||
on the steps they have taken. You must ensure you are following security best practices.
|
This page does not attempt to outline the specific steps needed to secure your internal website.
|
||||||
This page does not attempt to outline the specific steps needed to secure your internal website.
|
|
||||||
Please use your own knowledge to assess and vet the reverse proxy software before you install anything on your system.
|
Please use your own knowledge to assess and vet the reverse proxy software before you install anything on your system.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
There are several technologies available to implement reverse proxies. This document currently suggests one, using Apache2,
|
## Proxies
|
||||||
and the community is invited to document others through a contribution to this page.
|
|
||||||
|
There are many solutions available to implement reverse proxies and the community is invited to help out documenting others through a contribution to this page.
|
||||||
|
|
||||||
|
* [Apache2](#apache2-reverse-proxy)
|
||||||
|
* [Nginx](#nginx-reverse-proxy)
|
||||||
|
* [Traefik](#traefik-reverse-proxy)
|
||||||
|
|
||||||
## Apache2 Reverse Proxy
|
## Apache2 Reverse Proxy
|
||||||
|
|
||||||
@ -141,3 +154,26 @@ The settings below enabled connection upgrade, sets up logging (optional) and pr
|
|||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Traefik Reverse Proxy
|
||||||
|
|
||||||
|
This example shows how to add a `label` to the Frigate Docker compose file, enabling Traefik to automatically discover your Frigate instance.
|
||||||
|
Before using the example below, you must first set up Traefik with the [Docker provider](https://doc.traefik.io/traefik/providers/docker/)
|
||||||
|
|
||||||
|
```yml
|
||||||
|
services:
|
||||||
|
frigate:
|
||||||
|
container_name: frigate
|
||||||
|
image: ghcr.io/blakeblackshear/frigate:stable
|
||||||
|
...
|
||||||
|
...
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.frigate.loadbalancer.server.port=8971"
|
||||||
|
- "traefik.http.routers.frigate.rule=Host(`traefik.example.com`)"
|
||||||
|
```
|
||||||
|
|
||||||
|
The above configuration will create a "service" in Traefik, automatically adding your container's IP on port 8971 as a backend.
|
||||||
|
It will also add a router, routing requests to "traefik.example.com" to your local container.
|
||||||
|
|
||||||
|
Note that with this approach, you don't need to expose any ports for the Frigate instance since all traffic will be routed over the internal Docker network.
|
||||||
|
@ -373,7 +373,7 @@ Metadata about previews for this time range.
|
|||||||
|
|
||||||
Metadata about previews for this hour
|
Metadata about previews for this hour
|
||||||
|
|
||||||
### `GET /api/preview/<camera>/start/<start-timestamp>/end/<end-timestamp>`
|
### `GET /api/preview/<camera>/start/<start-timestamp>/end/<end-timestamp>/frames`
|
||||||
|
|
||||||
List of frames in the preview cache for the time range. Previews are only kept in the cache until they are combined into an mp4 at the end of the hour.
|
List of frames in the preview cache for the time range. Previews are only kept in the cache until they are combined into an mp4 at the end of the hour.
|
||||||
|
|
||||||
@ -381,6 +381,14 @@ List of frames in the preview cache for the time range. Previews are only kept i
|
|||||||
|
|
||||||
Specific preview frame from preview cache.
|
Specific preview frame from preview cache.
|
||||||
|
|
||||||
|
### `GET /review/<review_id>/preview`
|
||||||
|
|
||||||
|
Looping image made from preview video / frames during this review item.
|
||||||
|
|
||||||
|
| param | Type | Description |
|
||||||
|
| --------- | ---- | -------------------------------- |
|
||||||
|
| `format` | str | Format of preview [`gif`, `mp4`] |
|
||||||
|
|
||||||
### `GET /<camera>/start/<start-timestamp>/end/<end-timestamp>/preview`
|
### `GET /<camera>/start/<start-timestamp>/end/<end-timestamp>/preview`
|
||||||
|
|
||||||
Looping image made from preview video / frames during this time range.
|
Looping image made from preview video / frames during this time range.
|
||||||
|
@ -25,7 +25,7 @@ Available via HACS as a default repository. To install:
|
|||||||
- Use [HACS](https://hacs.xyz/) to install the integration:
|
- Use [HACS](https://hacs.xyz/) to install the integration:
|
||||||
|
|
||||||
```
|
```
|
||||||
Home Assistant > HACS > Integrations > "Explore & Add Integrations" > Frigate
|
Home Assistant > HACS > Click in the Search bar and type "Frigate" > Frigate
|
||||||
```
|
```
|
||||||
|
|
||||||
- Restart Home Assistant.
|
- Restart Home Assistant.
|
||||||
|
@ -11,7 +11,7 @@ These are the MQTT messages generated by Frigate. The default topic_prefix is `f
|
|||||||
|
|
||||||
Designed to be used as an availability topic with Home Assistant. Possible message are:
|
Designed to be used as an availability topic with Home Assistant. Possible message are:
|
||||||
"online": published when Frigate is running (on startup)
|
"online": published when Frigate is running (on startup)
|
||||||
"offline": published right before Frigate stops
|
"offline": published after Frigate has stopped
|
||||||
|
|
||||||
### `frigate/restart`
|
### `frigate/restart`
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ In Frigate, you can use an environment variable or a docker secret named `PLUS_A
|
|||||||
|
|
||||||
:::warning
|
:::warning
|
||||||
|
|
||||||
You cannot use the `environment_vars` section of your configuration file to set this environment variable.
|
You cannot use the `environment_vars` section of your Frigate configuration file to set this environment variable. It must be defined as an environment variable in the docker config or HA addon config.
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
@ -18,3 +18,7 @@ Please use your own knowledge to assess and vet them before you install anything
|
|||||||
[Double Take](https://github.com/skrashevich/double-take) provides an unified UI and API for processing and training images for facial recognition.
|
[Double Take](https://github.com/skrashevich/double-take) provides an unified UI and API for processing and training images for facial recognition.
|
||||||
It supports automatically setting the sub labels in Frigate for person objects that are detected and recognized.
|
It supports automatically setting the sub labels in Frigate for person objects that are detected and recognized.
|
||||||
This is a fork (with fixed errors and new features) of [original Double Take](https://github.com/jakowenko/double-take) project which, unfortunately, isn't being maintained by author.
|
This is a fork (with fixed errors and new features) of [original Double Take](https://github.com/jakowenko/double-take) project which, unfortunately, isn't being maintained by author.
|
||||||
|
|
||||||
|
## [Frigate telegram](https://github.com/OldTyT/frigate-telegram)
|
||||||
|
|
||||||
|
[Frigate telegram](https://github.com/OldTyT/frigate-telegram) makes it possible to send events from Frigate to Telegram. Events are sent as a message with a text description, video, and thumbnail.
|
||||||
|
@ -28,6 +28,18 @@ The USB coral has different IDs when it is uninitialized and initialized.
|
|||||||
- When running Frigate in a VM, Proxmox lxc, etc. you must ensure both device IDs are mapped.
|
- When running Frigate in a VM, Proxmox lxc, etc. you must ensure both device IDs are mapped.
|
||||||
- When running HA OS you may need to run the Full Access version of the Frigate addon with the `Protected Mode` switch disabled so that the coral can be accessed.
|
- When running HA OS you may need to run the Full Access version of the Frigate addon with the `Protected Mode` switch disabled so that the coral can be accessed.
|
||||||
|
|
||||||
|
### Synology 716+II running DSM 7.2.1-69057 Update 5
|
||||||
|
|
||||||
|
Some users have reported that this older device runs an older kernel causing issues with the coral not being detected. The following steps allowed it to be detected correctly:
|
||||||
|
|
||||||
|
1. Plug in the coral TPU in any of the USB ports on the NAS
|
||||||
|
2. Open the control panel - info screen. The coral TPU would be shown as a generic device.
|
||||||
|
3. Start the docker container with Coral TPU enabled in the config
|
||||||
|
4. The TPU would be detected but a few moments later it would disconnect.
|
||||||
|
5. While leaving the TPU device plugged in, restart the NAS using the reboot command in the UI. Do NOT unplug the NAS/power it off etc.
|
||||||
|
6. Open the control panel - info scree. The coral TPU will now be recognised as a USB Device - google inc
|
||||||
|
7. Start the frigate container. Everything should work now!
|
||||||
|
|
||||||
## USB Coral Detection Appears to be Stuck
|
## USB Coral Detection Appears to be Stuck
|
||||||
|
|
||||||
The USB Coral can become stuck and need to be restarted, this can happen for a number of reasons depending on hardware and software setup. Some common reasons are:
|
The USB Coral can become stuck and need to be restarted, this can happen for a number of reasons depending on hardware and software setup. Some common reasons are:
|
||||||
|
@ -57,6 +57,7 @@ module.exports = {
|
|||||||
"configuration/notifications",
|
"configuration/notifications",
|
||||||
"configuration/hardware_acceleration",
|
"configuration/hardware_acceleration",
|
||||||
"configuration/ffmpeg_presets",
|
"configuration/ffmpeg_presets",
|
||||||
|
"configuration/pwa",
|
||||||
"configuration/tls",
|
"configuration/tls",
|
||||||
"configuration/advanced",
|
"configuration/advanced",
|
||||||
],
|
],
|
||||||
|
BIN
docs/static/img/plus/send-to-plus.jpg
vendored
BIN
docs/static/img/plus/send-to-plus.jpg
vendored
Binary file not shown.
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 62 KiB |
BIN
docs/static/img/plus/submit-to-plus.jpg
vendored
BIN
docs/static/img/plus/submit-to-plus.jpg
vendored
Binary file not shown.
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 49 KiB |
Loading…
Reference in New Issue
Block a user