Compare commits

..
43 Commits
Author SHA1 Message Date
Blake Blackshear 939d1ba091 use global and ensure dirs exist 2020-10-18 13:47:13 -05:00
Blake Blackshear 0fe8d486d9 make cache/clips dirs configurable 2020-10-18 13:47:13 -05:00
Blake Blackshear a3cb02af5c sync arch names with hassio 2020-10-18 13:47:13 -05:00
Blake Blackshear 45a6b8452c allow config file to be specified by env var and allow json 2020-10-18 13:47:13 -05:00
Blake Blackshear 9d594cc640 allow setting config file location via env var 2020-10-18 13:47:13 -05:00
Blake Blackshear 59e41ae1ac update sample config 2020-10-18 13:47:13 -05:00
Blake Blackshear c6ed16465b move the timestamp to bottom 2020-10-18 13:47:13 -05:00
Blake Blackshear 8f14b36f5a tweak size 2020-10-18 13:47:13 -05:00
Blake Blackshear b6c2491e3b use the actual original shape 2020-10-18 13:47:13 -05:00
Blake Blackshear 8e31d04d90 scale font of timestamp dynamically 2020-10-18 13:47:13 -05:00
Blake Blackshear bf93fbb357 add ability to draw bounding boxes/timestamps on snapshots 2020-10-18 13:47:13 -05:00
Blake Blackshear c064b244db handle empty best frames 2020-10-18 13:47:13 -05:00
Blake Blackshear 0280610e96 fix detector cleanup 2020-10-18 13:47:13 -05:00
Blake Blackshear 4363623c45 reduce zone filter bouncing 2020-10-18 13:47:13 -05:00
Blake Blackshear c960914ec3 prevent the camera process from hanging 2020-10-18 13:47:13 -05:00
Blake Blackshear 9ecc80b443 syntax error 2020-10-18 13:47:13 -05:00
Blake Blackshear 3e146de0a2 update docs 2020-10-18 13:47:13 -05:00
Blake Blackshear bee54c39dc update default detectors 2020-10-18 13:47:13 -05:00
Blake Blackshear 623d138d60 use dictionary for detectors for sensors 2020-10-18 13:47:13 -05:00
Blake Blackshear 76befc1249 only draw during debug 2020-10-18 13:47:13 -05:00
Dejan ZelicandBlake Blackshear 51251b9fb0 Added Healthcheck to Docker Compose
Frigate provides an HTTP server that can be used to detect if frigate is running or not. Using the docker-compose "healthcheck" feature we can set automations to restart the service if it stops working.
2020-10-18 13:47:13 -05:00
RadegastandBlake Blackshear 8c45076bb6 Fix error in the docker run command
I have very little experience with Docker, but it seems the command in the README has two mistakes in it:

- unknown shorthand flag: 'n' in -name
- docker: Error response from daemon: Invalid container name (blakeblackshear/frigate:stable), only [a-zA-Z0-9][a-zA-Z0-9_.-] are allowed.

I am running Docker version 19.03.13-ce, build 4484c46d9d on Arch linux.
2020-10-18 13:47:13 -05:00
Blake Blackshear 7d683ef399 cleanup frame queue 2020-10-18 13:47:13 -05:00
Blake Blackshear e4da3822b1 cleanup detection shms 2020-10-18 13:47:13 -05:00
Blake Blackshear 12c4cd77c5 only convert pix_fmt when necessary 2020-10-18 13:47:13 -05:00
Blake Blackshear a611cbb942 use yuv420p pixel format for motion 2020-10-18 13:47:13 -05:00
Blake Blackshear f946813ccb support multiple coral devices (fixes #100) 2020-10-18 13:47:13 -05:00
Blake Blackshear 49fca1b839 print stacktraceon segfaults 2020-10-18 13:47:13 -05:00
Blake Blackshear 54cb4a2180 prevent frame from being deleted while in use 2020-10-18 13:47:13 -05:00
Blake Blackshear 9954e3b11e build ffmpeg in separate container 2020-10-18 13:47:13 -05:00
Blake Blackshear 82692b0ddc arm64 ffmpeg cleanup 2020-10-18 13:47:13 -05:00
Blake Blackshear 9d4fdec12f arm64 ffmpeg build 2020-10-18 13:47:13 -05:00
Blake Blackshear ed72c995ef ffmpeg 4.3.1 build for amd64 2020-10-18 13:47:13 -05:00
Blake Blackshear 66c77d1157 base image build cleanup 2020-10-18 13:47:13 -05:00
Blake Blackshear 40c322ad47 arm64 support 2020-10-18 13:47:13 -05:00
Blake Blackshear 83f1e0d713 add rpi dockerfile 2020-10-18 13:47:13 -05:00
Blake Blackshear 2d89044bd3 update dockerfiles for amd64 2020-10-18 13:47:13 -05:00
Blake Blackshear dc4d24c2b9 Base dockerfile for building wheels 2020-10-18 13:47:13 -05:00
Blake Blackshear d5fb20c524 refactor dockerfile 2020-10-18 13:47:13 -05:00
Blake Blackshear 7e92e8bfe8 fix shared memory store usage for events 2020-10-18 13:47:13 -05:00
Blake Blackshear efdcfcef97 cleanup 2020-10-18 13:47:13 -05:00
Blake Blackshear 574ee2a46f update detection handoff to use shared memory 2020-10-18 13:47:13 -05:00
Blake Blackshear ec4d048905 upgrade to python3.8 and switch from plasma store to shared_memory 2020-10-18 13:47:13 -05:00
8 changed files with 37 additions and 20 deletions
+16 -16
View File
@@ -12,26 +12,26 @@ amd64_frigate:
amd64_all: amd64_wheels amd64_ffmpeg amd64_frigate
arm64_wheels:
docker build --tag blakeblackshear/frigate-wheels:arm64 --file docker/Dockerfile.wheels.arm64 .
aarch64_wheels:
docker build --tag blakeblackshear/frigate-wheels:aarch64 --file docker/Dockerfile.wheels.aarch64 .
arm64_ffmpeg:
docker build --tag blakeblackshear/frigate-ffmpeg:arm64 --file docker/Dockerfile.ffmpeg.arm64 .
aarch64_ffmpeg:
docker build --tag blakeblackshear/frigate-ffmpeg:aarch64 --file docker/Dockerfile.ffmpeg.aarch64 .
arm64_frigate:
docker build --tag frigate-base --build-arg ARCH=arm64 --file docker/Dockerfile.base .
docker build --tag frigate --file docker/Dockerfile.arm64 .
aarch64_frigate:
docker build --tag frigate-base --build-arg ARCH=aarch64 --file docker/Dockerfile.base .
docker build --tag frigate --file docker/Dockerfile.aarch64 .
armv7hf_all: arm64_wheels arm64_ffmpeg arm64_frigate
armv7_all: armv7_wheels armv7_ffmpeg armv7_frigate
armv7hf_wheels:
docker build --tag blakeblackshear/frigate-wheels:armv7hf --file docker/Dockerfile.wheels .
armv7_wheels:
docker build --tag blakeblackshear/frigate-wheels:armv7 --file docker/Dockerfile.wheels .
armv7hf_ffmpeg:
docker build --tag blakeblackshear/frigate-ffmpeg:armv7hf --file docker/Dockerfile.ffmpeg.armv7hf .
armv7_ffmpeg:
docker build --tag blakeblackshear/frigate-ffmpeg:armv7 --file docker/Dockerfile.ffmpeg.armv7 .
armv7hf_frigate:
docker build --tag frigate-base --build-arg ARCH=armv7hf --file docker/Dockerfile.base .
docker build --tag frigate --file docker/Dockerfile.armv7hf .
armv7_frigate:
docker build --tag frigate-base --build-arg ARCH=armv7 --file docker/Dockerfile.base .
docker build --tag frigate --file docker/Dockerfile.armv7 .
armv7hf_all: armv7hf_wheels armv7hf_ffmpeg armv7hf_frigate
armv7_all: armv7_wheels armv7_ffmpeg armv7_frigate
+2
View File
@@ -31,6 +31,8 @@ save_clips:
# will begin to expire and the resulting clip will be the last x seconds of the event.
###########
max_seconds: 300
clips_dir: /clips
cache_dir: /cache
#################
# Default ffmpeg args. Optional and can be overwritten per camera.
+19 -4
View File
@@ -9,6 +9,7 @@ import time
import datetime
import queue
import yaml
import json
import threading
import multiprocessing as mp
import subprocess as sp
@@ -25,8 +26,22 @@ from frigate.edgetpu import EdgeTPUProcess
FRIGATE_VARS = {k: v for k, v in os.environ.items() if k.startswith('FRIGATE_')}
with open('/config/config.yml') as f:
CONFIG = yaml.safe_load(f)
CONFIG_FILE = os.environ.get('CONFIG_FILE', '/config/config.yml')
if CONFIG_FILE.endswith(".yml"):
with open(CONFIG_FILE) as f:
CONFIG = yaml.safe_load(f)
elif CONFIG_FILE.endswith(".json"):
with open(CONFIG_FILE) as f:
CONFIG = json.load(f)
CACHE_DIR = CONFIG.get('save_clips', {}).get('cache_dir', '/cache')
CLIPS_DIR = CONFIG.get('save_clips', {}).get('clips_dir', '/cache')
if not os.path.exists(CACHE_DIR):
os.makedirs(CACHE_DIR)
if not os.path.exists(CLIPS_DIR):
os.makedirs(CLIPS_DIR)
MQTT_HOST = CONFIG['mqtt']['host']
MQTT_PORT = CONFIG.get('mqtt', {}).get('port', 1883)
@@ -223,7 +238,7 @@ def main():
"-an",
"-map",
"0",
f"/cache/{name}-%Y%m%d%H%M%S.mp4"
f"{os.path.join(CACHE_DIR, name)}-%Y%m%d%H%M%S.mp4"
] + ffmpeg_output_args
ffmpeg_cmd = (['ffmpeg'] +
ffmpeg_global_args +
@@ -289,7 +304,7 @@ def main():
camera_process['process'].start()
print(f"Camera_process started for {name}: {camera_process['process'].pid}")
event_processor = EventProcessor(CONFIG, camera_processes, '/cache', '/clips', event_queue, stop_event)
event_processor = EventProcessor(CONFIG, camera_processes, CACHE_DIR, CLIPS_DIR, event_queue, stop_event)
event_processor.start()
object_processor = TrackedObjectProcessor(CONFIG['cameras'], client, MQTT_TOPIC_PREFIX, tracked_objects_queue, event_queue, stop_event)