mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-14 15:15:22 +03:00
Update docs
This commit is contained in:
parent
b399bc4b6f
commit
c57ea6f653
@ -75,21 +75,21 @@ Frigate utilizes shared memory to store frames during processing. The default `s
|
|||||||
|
|
||||||
The default shm size of **64MB** is fine for setups with **2 cameras** detecting at **720p**. If Frigate is exiting with "Bus error" messages, it is likely because you have too many high resolution cameras and you need to specify a higher shm size, using [`--shm-size`](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources) (or [`service.shm_size`](https://docs.docker.com/compose/compose-file/compose-file-v2/#shm_size) in docker-compose).
|
The default shm size of **64MB** is fine for setups with **2 cameras** detecting at **720p**. If Frigate is exiting with "Bus error" messages, it is likely because you have too many high resolution cameras and you need to specify a higher shm size, using [`--shm-size`](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources) (or [`service.shm_size`](https://docs.docker.com/compose/compose-file/compose-file-v2/#shm_size) in docker-compose).
|
||||||
|
|
||||||
The Frigate container also stores logs in shm, which can take up to **30MB**, so make sure to take this into account in your math as well.
|
The Frigate container also stores logs in shm, which can take up to **40MB**, so make sure to take this into account in your math as well.
|
||||||
|
|
||||||
You can calculate the necessary shm size for each camera with the following formula using the resolution specified for detect:
|
You can calculate the necessary shm size for each camera with the following formula using the resolution specified for detect:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
# Replace <width> and <height>
|
# Replace <width> and <height>
|
||||||
$ python -c 'print("{:.2f}MB".format((<width> * <height> * 1.5 * 9 + 270480) / 1048576))'
|
$ python -c 'print("{:.2f}MB".format((<width> * <height> * 1.5 * 10 + 270480) / 1048576))'
|
||||||
|
|
||||||
# Example for 1280x720
|
# Example for 1280x720
|
||||||
$ python -c 'print("{:.2f}MB".format((1280 * 720 * 1.5 * 9 + 270480) / 1048576))'
|
$ python -c 'print("{:.2f}MB".format((1280 * 720 * 1.5 * 10 + 270480) / 1048576))'
|
||||||
12.12MB
|
12.12MB
|
||||||
|
|
||||||
# Example for eight cameras detecting at 1280x720, including logs
|
# Example for eight cameras detecting at 1280x720, including logs
|
||||||
$ python -c 'print("{:.2f}MB".format(((1280 * 720 * 1.5 * 9 + 270480) / 1048576) * 8 + 30))'
|
$ python -c 'print("{:.2f}MB".format(((1280 * 720 * 1.5 * 10 + 270480) / 1048576) * 8 + 40))'
|
||||||
126.99MB
|
136.99MB
|
||||||
```
|
```
|
||||||
|
|
||||||
The shm size cannot be set per container for Home Assistant add-ons. However, this is probably not required since by default Home Assistant Supervisor allocates `/dev/shm` with half the size of your total memory. If your machine has 8GB of memory, chances are that Frigate will have access to up to 4GB without any additional configuration.
|
The shm size cannot be set per container for Home Assistant add-ons. However, this is probably not required since by default Home Assistant Supervisor allocates `/dev/shm` with half the size of your total memory. If your machine has 8GB of memory, chances are that Frigate will have access to up to 4GB without any additional configuration.
|
||||||
|
|||||||
@ -602,18 +602,26 @@ class FrigateApp:
|
|||||||
|
|
||||||
def check_shm(self) -> None:
|
def check_shm(self) -> None:
|
||||||
available_shm = round(shutil.disk_usage("/dev/shm").total / pow(2, 20), 1)
|
available_shm = round(shutil.disk_usage("/dev/shm").total / pow(2, 20), 1)
|
||||||
min_req_shm = 30
|
|
||||||
|
|
||||||
for _, camera in self.config.cameras.items():
|
# required for log files
|
||||||
|
min_req_shm = 40
|
||||||
|
|
||||||
|
for camera in self.config.cameras.values():
|
||||||
min_req_shm += round(
|
min_req_shm += round(
|
||||||
(camera.detect.width * camera.detect.height * 1.5 * 9 + 270480)
|
(
|
||||||
|
camera.detect.width
|
||||||
|
* camera.detect.height
|
||||||
|
* 1.5
|
||||||
|
* max(10, camera.detect.fps)
|
||||||
|
+ 270480
|
||||||
|
)
|
||||||
/ 1048576,
|
/ 1048576,
|
||||||
1,
|
1,
|
||||||
)
|
)
|
||||||
|
|
||||||
if available_shm < min_req_shm:
|
if True:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
f"The current SHM size of {available_shm}MB is too small, recommend increasing it to at least {min_req_shm}MB."
|
f"The current SHM size of {available_shm}MB is too small, recommend increasing it to at least {round(min_req_shm)}MB."
|
||||||
)
|
)
|
||||||
|
|
||||||
def init_auth(self) -> None:
|
def init_auth(self) -> None:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user