From 54b05b7a3408aa03a1709608759f8ca69b4bf19b Mon Sep 17 00:00:00 2001 From: okxlin Date: Wed, 30 Oct 2024 01:24:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0frigate=E5=88=B0?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../frigate/0.14.1-standard-arm64/.env.sample | 11 +++ apps/frigate/0.14.1-standard-arm64/data.yml | 83 ++++++++++++++++++ .../0.14.1-standard-arm64/docker-compose.yml | 35 ++++++++ apps/frigate/0.14.1/.env.sample | 11 +++ apps/frigate/0.14.1/data.yml | 83 ++++++++++++++++++ apps/frigate/0.14.1/docker-compose.yml | 35 ++++++++ apps/frigate/README.md | 23 +++++ apps/frigate/data.yml | 19 ++++ apps/frigate/logo.png | Bin 0 -> 1357 bytes apps/frigate/stable/.env.sample | 11 +++ apps/frigate/stable/data.yml | 83 ++++++++++++++++++ apps/frigate/stable/docker-compose.yml | 35 ++++++++ 12 files changed, 429 insertions(+) create mode 100644 apps/frigate/0.14.1-standard-arm64/.env.sample create mode 100644 apps/frigate/0.14.1-standard-arm64/data.yml create mode 100644 apps/frigate/0.14.1-standard-arm64/docker-compose.yml create mode 100644 apps/frigate/0.14.1/.env.sample create mode 100644 apps/frigate/0.14.1/data.yml create mode 100644 apps/frigate/0.14.1/docker-compose.yml create mode 100644 apps/frigate/README.md create mode 100644 apps/frigate/data.yml create mode 100644 apps/frigate/logo.png create mode 100644 apps/frigate/stable/.env.sample create mode 100644 apps/frigate/stable/data.yml create mode 100644 apps/frigate/stable/docker-compose.yml diff --git a/apps/frigate/0.14.1-standard-arm64/.env.sample b/apps/frigate/0.14.1-standard-arm64/.env.sample new file mode 100644 index 00000000..795a7831 --- /dev/null +++ b/apps/frigate/0.14.1-standard-arm64/.env.sample @@ -0,0 +1,11 @@ +CONFIG_PATH="./data/config" +CONTAINER_NAME="frigate" +FRIGATE_RTSP_PASSWORD="password" +PANEL_APP_PORT_HTTPS=8971 +PRIVILEGED_MODE="true" +RTSP_PORT=8554 +SHM_SIZE="64mb" +STORAGE_PATH="./data/storage" +TMPFS_SIZE=1000000000 +WEBRTC_TCP_PORT=8555 +WEBRTC_UDP_PORT=8555 diff --git a/apps/frigate/0.14.1-standard-arm64/data.yml b/apps/frigate/0.14.1-standard-arm64/data.yml new file mode 100644 index 00000000..dd0f5d33 --- /dev/null +++ b/apps/frigate/0.14.1-standard-arm64/data.yml @@ -0,0 +1,83 @@ +additionalProperties: + formFields: + - default: "true" + edit: true + envKey: PRIVILEGED_MODE + labelEn: Privileged Mode + labelZh: 特权模式 + required: true + type: select + values: + - label: "True" + value: "true" + - label: "False" + value: "false" + - default: "64mb" + edit: true + envKey: SHM_SIZE + labelEn: Shared Memory Size + labelZh: 共享内存大小 + required: true + type: text + - default: "./data/config" + edit: true + envKey: CONFIG_PATH + labelEn: Config Path + labelZh: 配置路径 + required: true + type: text + - default: "./data/storage" + edit: true + envKey: STORAGE_PATH + labelEn: Storage Path + labelZh: 存储路径 + required: true + type: text + - default: "1000000000" + edit: true + envKey: TMPFS_SIZE + labelEn: Tmpfs Size + labelZh: Tmpfs 大小 + required: true + type: number + - default: "8971" + edit: true + envKey: PANEL_APP_PORT_HTTPS + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: "8554" + edit: true + envKey: RTSP_PORT + labelEn: RTSP Port + labelZh: RTSP 端口 + required: true + rule: paramPort + type: number + - default: "8555" + edit: true + envKey: WEBRTC_TCP_PORT + labelEn: WebRTC TCP Port + labelZh: WebRTC TCP 端口 + required: true + rule: paramPort + type: number + - default: "8555" + edit: true + envKey: WEBRTC_UDP_PORT + labelEn: WebRTC UDP Port + labelZh: WebRTC UDP 端口 + required: true + rule: paramPort + type: number + - default: "password" + edit: true + envKey: FRIGATE_RTSP_PASSWORD + labelEn: RTSP Password + labelZh: RTSP 密码 + random: true + required: true + rule: paramComplexity + type: password diff --git a/apps/frigate/0.14.1-standard-arm64/docker-compose.yml b/apps/frigate/0.14.1-standard-arm64/docker-compose.yml new file mode 100644 index 00000000..64489b57 --- /dev/null +++ b/apps/frigate/0.14.1-standard-arm64/docker-compose.yml @@ -0,0 +1,35 @@ +services: + frigate: + image: "ghcr.io/blakeblackshear/frigate:0.14.1-standard-arm64" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + privileged: ${PRIVILEGED_MODE} + shm_size: "${SHM_SIZE}" + devices: + - /dev/bus/usb:/dev/bus/usb + - /dev/apex_0:/dev/apex_0 + - /dev/video11:/dev/video11 + - /dev/dri/renderD128:/dev/dri/renderD128 + volumes: + - /etc/localtime:/etc/localtime:ro + - ${CONFIG_PATH}:/config + - ${STORAGE_PATH}:/media/frigate + - type: tmpfs + target: /tmp/cache + tmpfs: + size: "${TMPFS_SIZE}" + ports: + - "${PANEL_APP_PORT_HTTPS}:8971" + - "${RTSP_PORT}:8554" + - "${WEBRTC_TCP_PORT}:8555/tcp" + - "${WEBRTC_UDP_PORT}:8555/udp" + environment: + - FRIGATE_RTSP_PASSWORD=${FRIGATE_RTSP_PASSWORD} + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/frigate/0.14.1/.env.sample b/apps/frigate/0.14.1/.env.sample new file mode 100644 index 00000000..795a7831 --- /dev/null +++ b/apps/frigate/0.14.1/.env.sample @@ -0,0 +1,11 @@ +CONFIG_PATH="./data/config" +CONTAINER_NAME="frigate" +FRIGATE_RTSP_PASSWORD="password" +PANEL_APP_PORT_HTTPS=8971 +PRIVILEGED_MODE="true" +RTSP_PORT=8554 +SHM_SIZE="64mb" +STORAGE_PATH="./data/storage" +TMPFS_SIZE=1000000000 +WEBRTC_TCP_PORT=8555 +WEBRTC_UDP_PORT=8555 diff --git a/apps/frigate/0.14.1/data.yml b/apps/frigate/0.14.1/data.yml new file mode 100644 index 00000000..dd0f5d33 --- /dev/null +++ b/apps/frigate/0.14.1/data.yml @@ -0,0 +1,83 @@ +additionalProperties: + formFields: + - default: "true" + edit: true + envKey: PRIVILEGED_MODE + labelEn: Privileged Mode + labelZh: 特权模式 + required: true + type: select + values: + - label: "True" + value: "true" + - label: "False" + value: "false" + - default: "64mb" + edit: true + envKey: SHM_SIZE + labelEn: Shared Memory Size + labelZh: 共享内存大小 + required: true + type: text + - default: "./data/config" + edit: true + envKey: CONFIG_PATH + labelEn: Config Path + labelZh: 配置路径 + required: true + type: text + - default: "./data/storage" + edit: true + envKey: STORAGE_PATH + labelEn: Storage Path + labelZh: 存储路径 + required: true + type: text + - default: "1000000000" + edit: true + envKey: TMPFS_SIZE + labelEn: Tmpfs Size + labelZh: Tmpfs 大小 + required: true + type: number + - default: "8971" + edit: true + envKey: PANEL_APP_PORT_HTTPS + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: "8554" + edit: true + envKey: RTSP_PORT + labelEn: RTSP Port + labelZh: RTSP 端口 + required: true + rule: paramPort + type: number + - default: "8555" + edit: true + envKey: WEBRTC_TCP_PORT + labelEn: WebRTC TCP Port + labelZh: WebRTC TCP 端口 + required: true + rule: paramPort + type: number + - default: "8555" + edit: true + envKey: WEBRTC_UDP_PORT + labelEn: WebRTC UDP Port + labelZh: WebRTC UDP 端口 + required: true + rule: paramPort + type: number + - default: "password" + edit: true + envKey: FRIGATE_RTSP_PASSWORD + labelEn: RTSP Password + labelZh: RTSP 密码 + random: true + required: true + rule: paramComplexity + type: password diff --git a/apps/frigate/0.14.1/docker-compose.yml b/apps/frigate/0.14.1/docker-compose.yml new file mode 100644 index 00000000..bf06cff4 --- /dev/null +++ b/apps/frigate/0.14.1/docker-compose.yml @@ -0,0 +1,35 @@ +services: + frigate: + image: "ghcr.io/blakeblackshear/frigate:0.14.1" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + privileged: ${PRIVILEGED_MODE} + shm_size: "${SHM_SIZE}" + devices: + - /dev/bus/usb:/dev/bus/usb + - /dev/apex_0:/dev/apex_0 + - /dev/video11:/dev/video11 + - /dev/dri/renderD128:/dev/dri/renderD128 + volumes: + - /etc/localtime:/etc/localtime:ro + - ${CONFIG_PATH}:/config + - ${STORAGE_PATH}:/media/frigate + - type: tmpfs + target: /tmp/cache + tmpfs: + size: "${TMPFS_SIZE}" + ports: + - "${PANEL_APP_PORT_HTTPS}:8971" + - "${RTSP_PORT}:8554" + - "${WEBRTC_TCP_PORT}:8555/tcp" + - "${WEBRTC_UDP_PORT}:8555/udp" + environment: + - FRIGATE_RTSP_PASSWORD=${FRIGATE_RTSP_PASSWORD} + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/frigate/README.md b/apps/frigate/README.md new file mode 100644 index 00000000..650d46e5 --- /dev/null +++ b/apps/frigate/README.md @@ -0,0 +1,23 @@ +# Frigate + +Frigate 是一个为 [Home Assistant](https://www.home-assistant.io) 设计的完整本地 NVR,具备 AI 物体检测功能。它使用 OpenCV 和 TensorFlow 实现 IP 摄像头的实时物体检测。 + + +- 与 Home Assistant 的紧密集成,通过 [自定义组件](https://github.com/blakeblackshear/frigate-hass-integration) 实现 +- 旨在通过仅在必要时和适当位置寻找物体来最小化资源使用并最大化性能 +- 大量利用多进程,强调实时性而非处理每一帧 +- 使用非常低开销的运动检测来确定何时进行物体检测 +- TensorFlow 的物体检测在单独的进程中运行,以实现最大 FPS +- 通过 MQTT 进行通信,方便与其他系统集成 +- 基于检测到的物体记录视频并设置保留策略 +- 24/7 录制 +- 通过 RTSP 进行重流,以减少对摄像头的连接数量 +- 支持 WebRTC 和 MSE,实现低延迟实时视图 + +## 文档 + +查看文档:[https://docs.frigate.video](https://docs.frigate.video) + +## 使用说明 + +用户名与密码通过查看容器日志获取 \ No newline at end of file diff --git a/apps/frigate/data.yml b/apps/frigate/data.yml new file mode 100644 index 00000000..dafe76cc --- /dev/null +++ b/apps/frigate/data.yml @@ -0,0 +1,19 @@ +name: Frigate +tags: + - 多媒体 +title: 一个开源的实时视频监控系统 +description: 一个开源的实时视频监控系统 +additionalProperties: + key: frigate + name: Frigate + tags: + - Media + shortDescZh: 一个开源的实时视频监控系统 + shortDescEn: NVR With Realtime Object Detection for IP Cameras + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://frigate.video + github: https://github.com/blakeblackshear/frigate + document: https://frigate.video/docs/ diff --git a/apps/frigate/logo.png b/apps/frigate/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20e809017af66c8925ad3bd5b346f16daaf517d0 GIT binary patch literal 1357 zcmeAS@N?(olHy`uVBq!ia0vp^TR@nD8Ax&oe*=;XO9OmDTtSRM4?_NVJ_I__tR%=U zm?7ZDpHD0T@$3&97C0Z&Ts4iSs~|#O;qCdo-lDTBtW|Dqn2?kFbZ5!sEtxV$Elecu zo@ib2JoUBLyCwz(7DZ1N$B>F!Z|}Aj-Et6MdvJB7xr=B=TGi&qv;MsQpW!Hx958c2 zVcQ$EU-J^4r|sNSuDv2?Wr)^PucbgrqVSQ$HjhbdvacF0ns|1(SqCvx*-NRkY`vky z@anBJ=SLI&k~cdSGoCEiUU$%O5vS+V{Pof@5?`e}AAD)Q|1s~9km2dbvXloIx78V~ z76%*;+%73x?YIBkqb2FqNACX3TV1fI=HKL^v#%d|oLC~$Z)PFBY5tV8@`~qP2DVoi z|DL#u=jMLpdvfXb3p=Y%T-(#$(^8q#Q`^cDu6%CIH8xA*Yqx**t)Fn2w_{^n6BFBW z`2?9o6Z~r;^}2dH){A*<>0EE;)zhi}S@LMae8$@v-(2R{E)aOHd`h`X;z+bCYs{my z8(rf1XI!2zU7$SpiOZ3@d!54O-l%rHroAy;^27|`dS}nyOZgd%BIKj{q)sH%an-A5 z@Beb{i0a(xmwI0{a$Xm1IJ|TMOT@`&fs>aCGadh&op^9((C0+uH+LpUbz3vNaXk?s zSiP~Y$2@8Mzx+AT%Z|j#3QWIjDr+g6q~|hE>E1PulTm`qvaUHvZ)P`6S+S{oEyIab z_I9osN59y1J(cv}Jk{@W!jf%&xyiX(4qlf6*oB{bTxV!$9CP@=m*|=|53Sf{Z`}8} z(DZI{p}x3J=^wu9uV;KIzbX93?&|Gdo0mPWTpV^PFZ0_DdX7reds{?@Iy3!T2ZdL4rwPXE%o|M6$B7b`Or zymv}(U#+}!+U%CX`Xj1%Iv1!6?^@CefiluyC<^y7yeDj z(tc9%e2$U%>wD2k?xvR8<3#i43)=}t`6Zh>HtIc|E>mvI?5b4vwTJ(p*aXuvX}jB# z9@-jSowuOncxl$VJqui>=N^6*v+zjE+g=ypRH1FJPs*e!Z9Dz#fJ3L^_4x`HoqX2* zJi~Le?Z^#**07r5#U<}%Y?y1#mm_jPzH_S-mr19kxFy^BCpT7e%Vb=daM)(?cPT5Q zX-DEU-m{8MRNwHq*`#x>yeSYbYxLf;pSxhoREaNsNf(%76D~~g;Hgr75%?goj)P~G zP^Y8*k*}-YL~^A^sW__`X80yuNE4rbO~plazKu|lj$uaCv6DSZKB%zCa%;|r<8rNG z(mE`5#j@;@fyz}|yB`*}CdniR{=F|hPnGR0=c^C4ol8x`;v!CJeyzLoq-1TqQS6cu zq0~O+YvS`Qd-a0e=x^8Sosjf9Yh})goAsg_56t@gUA^1lJj0EB+q5oE3l_JY%%N2? z=gO3Z-5=*{UE=)6Q{{z4-6M`4%e%n&TWjk7i~g6mvbfiNQ;7nViJq>0F6*2UngDZT BIqU!c literal 0 HcmV?d00001 diff --git a/apps/frigate/stable/.env.sample b/apps/frigate/stable/.env.sample new file mode 100644 index 00000000..795a7831 --- /dev/null +++ b/apps/frigate/stable/.env.sample @@ -0,0 +1,11 @@ +CONFIG_PATH="./data/config" +CONTAINER_NAME="frigate" +FRIGATE_RTSP_PASSWORD="password" +PANEL_APP_PORT_HTTPS=8971 +PRIVILEGED_MODE="true" +RTSP_PORT=8554 +SHM_SIZE="64mb" +STORAGE_PATH="./data/storage" +TMPFS_SIZE=1000000000 +WEBRTC_TCP_PORT=8555 +WEBRTC_UDP_PORT=8555 diff --git a/apps/frigate/stable/data.yml b/apps/frigate/stable/data.yml new file mode 100644 index 00000000..dd0f5d33 --- /dev/null +++ b/apps/frigate/stable/data.yml @@ -0,0 +1,83 @@ +additionalProperties: + formFields: + - default: "true" + edit: true + envKey: PRIVILEGED_MODE + labelEn: Privileged Mode + labelZh: 特权模式 + required: true + type: select + values: + - label: "True" + value: "true" + - label: "False" + value: "false" + - default: "64mb" + edit: true + envKey: SHM_SIZE + labelEn: Shared Memory Size + labelZh: 共享内存大小 + required: true + type: text + - default: "./data/config" + edit: true + envKey: CONFIG_PATH + labelEn: Config Path + labelZh: 配置路径 + required: true + type: text + - default: "./data/storage" + edit: true + envKey: STORAGE_PATH + labelEn: Storage Path + labelZh: 存储路径 + required: true + type: text + - default: "1000000000" + edit: true + envKey: TMPFS_SIZE + labelEn: Tmpfs Size + labelZh: Tmpfs 大小 + required: true + type: number + - default: "8971" + edit: true + envKey: PANEL_APP_PORT_HTTPS + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: "8554" + edit: true + envKey: RTSP_PORT + labelEn: RTSP Port + labelZh: RTSP 端口 + required: true + rule: paramPort + type: number + - default: "8555" + edit: true + envKey: WEBRTC_TCP_PORT + labelEn: WebRTC TCP Port + labelZh: WebRTC TCP 端口 + required: true + rule: paramPort + type: number + - default: "8555" + edit: true + envKey: WEBRTC_UDP_PORT + labelEn: WebRTC UDP Port + labelZh: WebRTC UDP 端口 + required: true + rule: paramPort + type: number + - default: "password" + edit: true + envKey: FRIGATE_RTSP_PASSWORD + labelEn: RTSP Password + labelZh: RTSP 密码 + random: true + required: true + rule: paramComplexity + type: password diff --git a/apps/frigate/stable/docker-compose.yml b/apps/frigate/stable/docker-compose.yml new file mode 100644 index 00000000..6d3bba4c --- /dev/null +++ b/apps/frigate/stable/docker-compose.yml @@ -0,0 +1,35 @@ +services: + frigate: + image: "ghcr.io/blakeblackshear/frigate:stable" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + privileged: ${PRIVILEGED_MODE} + shm_size: "${SHM_SIZE}" + devices: + - /dev/bus/usb:/dev/bus/usb + - /dev/apex_0:/dev/apex_0 + - /dev/video11:/dev/video11 + - /dev/dri/renderD128:/dev/dri/renderD128 + volumes: + - /etc/localtime:/etc/localtime:ro + - ${CONFIG_PATH}:/config + - ${STORAGE_PATH}:/media/frigate + - type: tmpfs + target: /tmp/cache + tmpfs: + size: "${TMPFS_SIZE}" + ports: + - "${PANEL_APP_PORT_HTTPS}:8971" + - "${RTSP_PORT}:8554" + - "${WEBRTC_TCP_PORT}:8555/tcp" + - "${WEBRTC_UDP_PORT}:8555/udp" + environment: + - FRIGATE_RTSP_PASSWORD=${FRIGATE_RTSP_PASSWORD} + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true