Skip to content

Commit 1763b05

Browse files
committed
Merge branch 'dev' of github.com:blakeblackshear/frigate into testing
2 parents 2273132 + d1f28eb commit 1763b05

File tree

382 files changed

+7736
-1333
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

382 files changed

+7736
-1333
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
The MIT License
22

3-
Copyright (c) 2025 Frigate LLC (Frigate™)
3+
Copyright (c) 2026 Frigate, Inc. (Frigate™)
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ If you would like to make a donation to support development, please use [Github
4040
This project is licensed under the **MIT License**.
4141

4242
- **Code:** The source code, configuration files, and documentation in this repository are available under the [MIT License](LICENSE). You are free to use, modify, and distribute the code as long as you include the original copyright notice.
43-
- **Trademarks:** The "Frigate" name, the "Frigate NVR" brand, and the Frigate logo are **trademarks of Frigate LLC** and are **not** covered by the MIT License.
43+
- **Trademarks:** The "Frigate" name, the "Frigate NVR" brand, and the Frigate logo are **trademarks of Frigate, Inc.** and are **not** covered by the MIT License.
4444

4545
Please see our [Trademark Policy](TRADEMARK.md) for details on acceptable use of our brand assets.
4646

@@ -80,4 +80,4 @@ We use [Weblate](https://hosted.weblate.org/projects/frigate-nvr/) to support la
8080

8181
---
8282

83-
**Copyright © 2025 Frigate LLC.**
83+
**Copyright © 2026 Frigate, Inc.**

README_CN.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44

55
# Frigate NVR™ - 一个具有实时目标检测的本地 NVR
66

7-
[English](https://github.com/blakeblackshear/frigate) | \[简体中文\]
8-
9-
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10-
117
<a href="https://hosted.weblate.org/engage/frigate-nvr/-/zh_Hans/">
128
<img src="https://hosted.weblate.org/widget/frigate-nvr/-/zh_Hans/svg-badge.svg" alt="翻译状态" />
139
</a>
1410

11+
[English](https://github.com/blakeblackshear/frigate) | \[简体中文\]
12+
13+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
14+
1515
一个完整的本地网络视频录像机(NVR),专为[Home Assistant](https://www.home-assistant.io)设计,具备 AI 目标/物体检测功能。使用 OpenCV 和 TensorFlow 在本地为 IP 摄像头执行实时物体检测。
1616

1717
强烈推荐使用 GPU 或者 AI 加速器(例如[Google Coral 加速器](https://coral.ai/products/) 或者 [Hailo](https://hailo.ai/)等)。它们的运行效率远远高于现在的顶级 CPU,并且功耗也极低。
@@ -38,9 +38,10 @@
3838
## 协议
3939

4040
本项目采用 **MIT 许可证**授权。
41+
4142
**代码部分**:本代码库中的源代码、配置文件和文档均遵循 [MIT 许可证](LICENSE)。您可以自由使用、修改和分发这些代码,但必须保留原始版权声明。
4243

43-
**商标部分**:“Frigate”名称、“Frigate NVR”品牌以及 Frigate 的 Logo 为 **Frigate LLC 的商标****不在** MIT 许可证覆盖范围内。
44+
**商标部分**:“Frigate”名称、“Frigate NVR”品牌以及 Frigate 的 Logo 为 **Frigate, Inc. 的商标****不在** MIT 许可证覆盖范围内。
4445
有关品牌资产的规范使用详情,请参阅我们的[《商标政策》](TRADEMARK.md)
4546

4647
## 截图
@@ -86,4 +87,4 @@ Bilibili:https://space.bilibili.com/3546894915602564
8687

8788
---
8889

89-
**Copyright © 2025 Frigate LLC.**
90+
**Copyright © 2026 Frigate, Inc.**

TRADEMARK.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ This document outlines the policy regarding the use of the trademarks associated
66

77
## 1. Our Trademarks
88

9-
The following terms and visual assets are trademarks (the "Marks") of **Frigate LLC**:
9+
The following terms and visual assets are trademarks (the "Marks") of **Frigate, Inc.**:
1010

1111
- **Frigate™**
1212
- **Frigate NVR™**
1313
- **Frigate+™**
1414
- **The Frigate Logo**
1515

1616
**Note on Common Law Rights:**
17-
Frigate LLC asserts all common law rights in these Marks. The absence of a federal registration symbol (®) does not constitute a waiver of our intellectual property rights.
17+
Frigate, Inc. asserts all common law rights in these Marks. The absence of a federal registration symbol (®) does not constitute a waiver of our intellectual property rights.
1818

1919
## 2. Interaction with the MIT License
2020

@@ -25,7 +25,7 @@ The software in this repository is licensed under the [MIT License](LICENSE).
2525
- The **Code** is free to use, modify, and distribute under the MIT terms.
2626
- The **Brand (Trademarks)** is **NOT** licensed under MIT.
2727

28-
You may not use the Marks in any way that is not explicitly permitted by this policy or by written agreement with Frigate LLC.
28+
You may not use the Marks in any way that is not explicitly permitted by this policy or by written agreement with Frigate, Inc.
2929

3030
## 3. Acceptable Use
3131

@@ -40,7 +40,7 @@ You may use the Marks without prior written permission in the following specific
4040
You may **NOT** use the Marks in the following ways:
4141

4242
- **Commercial Products:** You may not use "Frigate" in the name of a commercial product, service, or app (e.g., selling an app named _"Frigate Viewer"_ is prohibited).
43-
- **Implying Affiliation:** You may not use the Marks in a way that suggests your project is official, sponsored by, or endorsed by Frigate LLC.
43+
- **Implying Affiliation:** You may not use the Marks in a way that suggests your project is official, sponsored by, or endorsed by Frigate, Inc.
4444
- **Confusing Forks:** If you fork this repository to create a derivative work, you **must** remove the Frigate logo and rename your project to avoid user confusion. You cannot distribute a modified version of the software under the name "Frigate".
4545
- **Domain Names:** You may not register domain names containing "Frigate" that are likely to confuse users (e.g., `frigate-official-support.com`).
4646

docker/main/Dockerfile

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,18 @@ ENV PYTHONWARNINGS="ignore:::numpy.core.getlimits"
237237
# Set HailoRT to disable logging
238238
ENV HAILORT_LOGGER_PATH=NONE
239239

240-
# TensorFlow error only
240+
# TensorFlow C++ logging suppression (must be set before import)
241+
# TF_CPP_MIN_LOG_LEVEL: 0=all, 1=INFO+, 2=WARNING+, 3=ERROR+ (we use 3 for errors only)
241242
ENV TF_CPP_MIN_LOG_LEVEL=3
243+
# Suppress verbose logging from TensorFlow C++ code
244+
ENV TF_CPP_MIN_VLOG_LEVEL=3
245+
# Disable oneDNN optimization messages ("optimized with oneDNN...")
246+
ENV TF_ENABLE_ONEDNN_OPTS=0
247+
# Suppress AutoGraph verbosity during conversion
248+
ENV AUTOGRAPH_VERBOSITY=0
249+
# Google Logging (GLOG) suppression for TensorFlow components
250+
ENV GLOG_minloglevel=3
251+
ENV GLOG_logtostderr=0
242252

243253
ENV PATH="/usr/local/go2rtc/bin:/usr/local/tempio/bin:/usr/local/nginx/sbin:${PATH}"
244254

docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/run

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ function setup_homekit_config() {
5555

5656
if [[ ! -f "${config_path}" ]]; then
5757
echo "[INFO] Creating empty HomeKit config file..."
58-
echo '{}' > "${config_path}"
58+
echo 'homekit: {}' > "${config_path}"
5959
fi
6060

6161
# Convert YAML to JSON for jq processing
@@ -70,12 +70,14 @@ function setup_homekit_config() {
7070
jq '
7171
# Keep only the homekit section if it exists, otherwise empty object
7272
if has("homekit") then {homekit: .homekit} else {homekit: {}} end
73-
' "${temp_json}" > "${cleaned_json}" 2>/dev/null || echo '{"homekit": {}}' > "${cleaned_json}"
73+
' "${temp_json}" > "${cleaned_json}" 2>/dev/null || {
74+
echo '{"homekit": {}}' > "${cleaned_json}"
75+
}
7476

7577
# Convert back to YAML and write to the config file
7678
yq eval -P "${cleaned_json}" > "${config_path}" 2>/dev/null || {
7779
echo "[WARNING] Failed to convert cleaned config to YAML, creating minimal config"
78-
echo '{"homekit": {}}' > "${config_path}"
80+
echo 'homekit: {}' > "${config_path}"
7981
}
8082

8183
# Clean up temp files

docker/main/rootfs/usr/local/nginx/conf/proxy_trusted_headers.conf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ proxy_set_header X-Forwarded-Role $http_x_forwarded_role;
1919
proxy_set_header X-Forwarded-Groups $http_x_forwarded_groups;
2020
proxy_set_header X-Forwarded-Email $http_x_forwarded_email;
2121
proxy_set_header X-Forwarded-Preferred-Username $http_x_forwarded_preferred_username;
22+
proxy_set_header X-Auth-Request-User $http_x_auth_request_user;
23+
proxy_set_header X-Auth-Request-Groups $http_x_auth_request_groups;
24+
proxy_set_header X-Auth-Request-Email $http_x_auth_request_email;
25+
proxy_set_header X-Auth-Request-Preferred-Username $http_x_auth_request_preferred_username;
2226
proxy_set_header X-authentik-username $http_x_authentik_username;
2327
proxy_set_header X-authentik-groups $http_x_authentik_groups;
2428
proxy_set_header X-authentik-email $http_x_authentik_email;

docs/docs/configuration/authentication.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,3 +270,42 @@ To use role-based access control, you must connect to Frigate via the **authenti
270270
1. Log in as an **admin** user via port `8971`.
271271
2. Navigate to **Settings > Users**.
272272
3. Edit a user’s role by selecting **admin** or **viewer**.
273+
274+
## API Authentication Guide
275+
276+
### Getting a Bearer Token
277+
278+
To use the Frigate API, you need to authenticate first. Follow these steps to obtain a Bearer token:
279+
280+
#### 1. Login
281+
282+
Make a POST request to `/login` with your credentials:
283+
284+
```bash
285+
curl -i -X POST https://frigate_ip:8971/api/login \
286+
-H "Content-Type: application/json" \
287+
-d '{"user": "admin", "password": "your_password"}'
288+
```
289+
290+
:::note
291+
292+
You may need to include `-k` in the argument list in these steps (eg: `curl -k -i -X POST ...`) if your Frigate instance is using a self-signed certificate.
293+
294+
:::
295+
296+
The response will contain a cookie with the JWT token.
297+
298+
#### 2. Using the Bearer Token
299+
300+
Once you have the token, include it in the Authorization header for subsequent requests:
301+
302+
```bash
303+
curl -H "Authorization: Bearer <your_token>" https://frigate_ip:8971/api/profile
304+
```
305+
306+
#### 3. Token Lifecycle
307+
308+
- Tokens are valid for the configured session length
309+
- Tokens are automatically refreshed when you visit the `/auth` endpoint
310+
- Tokens are invalidated when the user's password is changed
311+
- Use `/logout` to clear your session cookie

docs/docs/configuration/camera_specific.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,10 @@ go2rtc:
188188
# example for connectin to a Reolink camera that supports two way talk
189189
your_reolink_camera_twt:
190190
- "ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=username&password=password#video=copy#audio=copy#audio=opus"
191-
- "rtsp://username:password@reolink_ip/Preview_01_sub
191+
- "rtsp://username:password@reolink_ip/Preview_01_sub"
192192
your_reolink_camera_twt_sub:
193193
- "ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=username&password=password"
194-
- "rtsp://username:password@reolink_ip/Preview_01_sub
194+
- "rtsp://username:password@reolink_ip/Preview_01_sub"
195195
# example for connecting to a Reolink NVR
196196
your_reolink_camera_via_nvr:
197197
- "ffmpeg:http://reolink_nvr_ip/flv?port=1935&app=bcs&stream=channel3_main.bcs&user=username&password=password" # channel numbers are 0-15
@@ -227,6 +227,12 @@ cameras:
227227

228228
### Unifi Protect Cameras
229229

230+
:::note
231+
232+
Unifi G5s cameras and newer need a Unifi Protect server to enable rtsps stream, it's not posible to enable it in standalone mode.
233+
234+
:::
235+
230236
Unifi protect cameras require the rtspx stream to be used with go2rtc.
231237
To utilize a Unifi protect camera, modify the rtsps link to begin with rtspx.
232238
Additionally, remove the "?enableSrtp" from the end of the Unifi link.
@@ -252,6 +258,10 @@ ffmpeg:
252258

253259
TP-Link VIGI cameras need some adjustments to the main stream settings on the camera itself to avoid issues. The stream needs to be configured as `H264` with `Smart Coding` set to `off`. Without these settings you may have problems when trying to watch recorded footage. For example Firefox will stop playback after a few seconds and show the following error message: `The media playback was aborted due to a corruption problem or because the media used features your browser did not support.`.
254260

261+
### Wyze Wireless Cameras
262+
263+
Some community members have found better performance on Wyze cameras by using an alternative firmware known as [Thingino](https://thingino.com/).
264+
255265
## USB Cameras (aka Webcams)
256266

257267
To use a USB camera (webcam) with Frigate, the recommendation is to use go2rtc's [FFmpeg Device](https://github.com/AlexxIT/go2rtc?tab=readme-ov-file#source-ffmpeg-device) support:

docs/docs/configuration/cameras.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,19 @@ This list of working and non-working PTZ cameras is based on user feedback. If y
9494
The FeatureList on the [ONVIF Conformant Products Database](https://www.onvif.org/conformant-products/) can provide a starting point to determine a camera's compatibility with Frigate's autotracking. Look to see if a camera lists `PTZRelative`, `PTZRelativePanTilt` and/or `PTZRelativeZoom`. These features are required for autotracking, but some cameras still fail to respond even if they claim support. If they are missing, autotracking will not work (though basic PTZ in the WebUI might). Avoid cameras with no database entry unless they are confirmed as working below.
9595

9696
| Brand or specific camera | PTZ Controls | Autotracking | Notes |
97-
| ---------------------------- | :----------: | :----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- |
97+
| ---------------------------- | :----------: | :----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
9898
| Amcrest | ✅ | ✅ | ⛔️ Generally, Amcrest should work, but some older models (like the common IP2M-841) don't support autotracking |
9999
| Amcrest ASH21 | ✅ | ❌ | ONVIF service port: 80 |
100100
| Amcrest IP4M-S2112EW-AI | ✅ | ❌ | FOV relative movement not supported. |
101101
| Amcrest IP5M-1190EW | ✅ | ❌ | ONVIF Port: 80. FOV relative movement not supported. |
102102
| Annke CZ504 | ✅ | ✅ | Annke support provide specific firmware ([V5.7.1 build 250227](https://github.com/pierrepinon/annke_cz504/raw/refs/heads/main/digicap_V5-7-1_build_250227.dav)) to fix issue with ONVIF "TranslationSpaceFov" |
103+
| Axis Q-6155E | ✅ | ❌ | ONVIF service port: 80; Camera does not support MoveStatus. |
103104
| Ctronics PTZ | ✅ | ❌ | |
104105
| Dahua | ✅ | ✅ | Some low-end Dahuas (lite series, picoo series (commonly), among others) have been reported to not support autotracking. These models usually don't have a four digit model number with chassis prefix and options postfix (e.g. DH-P5AE-PV vs DH-SD49825GB-HNR). |
105106
| Dahua DH-SD2A500HB | ✅ | ❌ | |
106107
| Dahua DH-SD49825GB-HNR | ✅ | ✅ | |
107108
| Dahua DH-P5AE-PV | ❌ | ❌ | |
108-
| Foscam | ✅ | ❌ | In general support PTZ, but not relative move. There are no official ONVIF certifications and tests available on the ONVIF Conformant Products Database | |
109+
| Foscam | ✅ | ❌ | In general support PTZ, but not relative move. There are no official ONVIF certifications and tests available on the ONVIF Conformant Products Database |
109110
| Foscam R5 | ✅ | ❌ | |
110111
| Foscam SD4 | ✅ | ❌ | |
111112
| Hanwha XNP-6550RH | ✅ | ❌ | |

0 commit comments

Comments
 (0)